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)))));
  • 相关阅读:
    SQLite无法使用drop column删除表字段解决办法
    Selenium之自动发送163邮件(转自https://www.cnblogs.com/zhang-da/p/12230415.html)
    frp 内网穿透
    smart.supor.com
    python colorama模块
    nohup和&后台运行,进程查看及终止
    Beef搭建并通过Nginx绑定域名
    How to Install Ruby on CentOS/RHEL 7/6
    Linux环境下安装python3
    启用IIS Express SSL(Https)的注意事项
  • 原文地址:https://www.cnblogs.com/CuiRicky/p/9391917.html
Copyright © 2011-2022 走看看