zoukankan      html  css  js  c++  java
  • ElasticSearch 使用问题

    1.设置空格分词器

    1 PUT /my_index/my_type/_mapping
    2 {
    3 "my_type": {
    4 "_all": { "analyzer": "whitespace" }
    5 }
    6 }

     2.聚合并排序

    3.空字符条件term不起作用,或者false不起作用,处理方法

    4.如何像sql一样使用in 或者not in

    in

    var a = new long[] { 122223, 122221, 122220 };
    query.Add(q => q.Terms(m1 => m1.Field("MerId").Terms(a)));

    not in

    var a = new long[] { 122223, 122221, 122220 };
    selector.Query(o => o.Bool(b => b.MustNot(a)));

     5.在原有索引中增加列

    curl -XPUT "http://192.168.1.216:9200/deals.info/_mapping/info" -d '{
        "properties": {
    "StartDate" : {"type": "date"},
    "EndDate" : {"type": "date"}
    }
    }
    '

     6. nest es中使用日期查询,注意.ToString("o")是必须的,因为es中默认存储的是国际标准时间带了T

    SearchDescriptor<object> selector = new SearchDescriptor<object>();
    List<Func<QueryContainerDescriptor<object>, QueryContainer>> query = new List<Func<QueryContainerDescriptor<object>, QueryContainer>>();
    //一个月之内的搜索记录
    query.Add(q => q.DateRange(t => t.Field("UpdateDate").GreaterThanOrEquals(DateMath.FromString(DateTime.UtcNow.AddMonths(-1).ToString("o", CultureInfo.InvariantCulture)))));
    //合并条件
    selector.Query(o => o.Bool(b => b.Must(query.ToArray())));

     7.es.net nest部分更新

    8.查看分词

    curl -XGET 'http://192.168.1.216:9200/seller.archived.track.002/_analyze?analyzer=ik_max_word&pretty'

     9.es新增内嵌属性

    curl -XPUT "http://192.168.1.216:9200/deals.product.develop/_mapping/info" -d '
    {
        "properties": {
    "CategoryList" : {
                "type": "nested",
                "properties" : {
                  "CategoryActionType" : {
                    "type" : "integer"
                  },
                  "FCategoryKey" : {
                    "type" : "integer"
                  }
                }
              }
    }
    }
    '

    10.es内嵌搜索脚本

    curl -XGET "http://192.168.1.216:9200/deals.product.develop/info/_search?pretty" -d '
    {
      "query": {
        "bool": {
          "must": [
            {
              "nested": {
                "path": "CategoryList",
                "query": {
                  "bool": {
                    "must": [
                      {
                        "term": {"CategoryList.FCategoryKey": "101002"}
                      },
                      {
                        "term": {"CategoryList.CategoryActionType": "3"}
                      }
                    ]
                  }
                }
              }
            }
          ]
        }
      }
    }
    '

    11.c#中es内嵌搜索

    query.Add(q => q.Nested(c=>c.Path("CategoryList").Query(nq=>nq.Terms(t => t.Field("CategoryList.FCategoryKey").Terms(101001, 101002)) && q.Terms(t => t.Field("CategoryList.CategoryActionType").Terms(1, 2)))));
  • 相关阅读:
    遇到shell重定向的一个奇怪问题:'消失'的标准输入!
    步步深入:MySQL架构总览->查询执行流程->SQL解析顺序
    [来自妹纸的挑战]-展开/还原多层链表
    【Shell】Linux 一行 多命令
    【Shell】通配符与特殊符号
    【Shell】变量的取用、删除、取代与替换
    【LeetCode】Find Minimum in Rotated Sorted Array 在旋转数组中找最小数
    【LeetCode】Maximum Product Subarray 求连续子数组使其乘积最大
    【LeetCode】Reverse Words in a String 反转字符串中的单词
    【面试题】比给定数大的最小数
  • 原文地址:https://www.cnblogs.com/CuiRicky/p/9391917.html
Copyright © 2011-2022 走看看