ES的心得

ES知识总结:

1、索引操作:

        (1)创建索引:语法是PUT indexName(随便)

        (2)删除索引:DELETE  indexName(要删除对应索引库库名)

        感想:不怎么难,挺简单

2、数据操作:

        (1)添加数据语法:POST indexName(要添加数据的索引库名)/ doc / ID(指定数据ID)

                        扩展字段:stock(INT类型,库存),saleable(布尔类型,是否上架)

        (2)修改数据语法:PUT  indexName(索引库名) / doc / ID(要修改的数据ID)

        (3)删除数据:DELETE  indexName / doc / ID(要删除对应数据的ID)

3、查询操作:

             (1)小技巧:

                                HEAD  indexName,查看当前索引是否存在。

                                GET _search 查看所有索引库

             (2)匹配查询:

                                匹配所有
                                get indexName/_search
                                {
                                          "query":{
                                            "match_all": {}
                                          }
                                }

                                匹配查询(指定字段条件查询)

                                get indexName/_search
                                {
                                          "query":{
                                            "match": {
                                              (字段名)"title":"手机"

                                                可添加扩展字段:

                                                "minimum_should_match": "75%"来控制查询的匹配度
                                            }
                                          }
                                }

                                多字段匹配:

                                get indexName/_search
                                {
                                          "query":{
                                            "multi_match": {
                                              "query": "小米200",
                                              "fields": ["title"]
                                            }
                                          }
                                }

               (3)查看索引解构信息以及当前索引所包含信息:
                                GET indexName(查看当前索引库的解构信息)
                                GET indexName / _search(查看当前索引库下所有的数据信息)

               (4)布尔查询:

                                模糊查询:
                                get  indexName / _search
                                {
                                          "query": {
                                            "bool":  {
                                              "must" :  [

                                             match注释:必须带此条件的模糊查询,查询的字段必须拥有“小米”
                                                { "match" :  {
                                                   "title" :  "小米"
                                                  }
                                                }
                                              ],

                                              must_not 为不能带此条件查询
                                              "must_not" :  [
                                                 { "match" :  {
                                                   "title" :  "手机"
                                                  }
                                                 }
                                              ],

                                              should为可查询出此字段的数据,没有也不影响
                                              "should" :  [
                                                {"match" :  {
                                                  "title" :  "电视"
                                                }}
                                              ]
                                           }
                                      }
                                }

        (2)过滤查询

                与同时查询range 和 title 的区别是:filter会在保有range的price区间查询的同时,不影响我们要查的主词条的分值。这里我们要查的主词条是小米手机,如果是同时查询,则分值结果会是同时符合价格和小米手机这个词条的结果分值最高。但如果用filter拦截range查询price的话,则相当于只查询了title的小米手机这个词条的结果和分值,但同时也查询了价格区间,只是这个条件不影响只查询主词条的分值。
                GET indexName/_search
                {
                          "query": {
                            "bool": {
                              "must": [
                                {"match": {
                                  "title": "小米手机"
                                }}
                              ],
                              "filter": {
                                "range": {
                                  "price": {
                                    "gte": 2500
                                  }
                                }
                              }
                            }
                          }
                }

                #不计算分值过滤查询
                GET indexName/_search
                {
                          "query": {
                            "constant_score": {
                              "filter": {
                                "range": {
                                  "price": {
                                    "gte": 2500
                                  }
                                }
                              }
                            }
                          }
                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值