zoukankan      html  css  js  c++  java
  • ELK学习总结(3-2)elk的过滤查询

    和一般查询比较,filter查询:能够缓存数据在内存中,应该尽可能使用

    建立测试数据

    查看测试数据

    1、filtered查询

    GET /store/products/_search

    {

          "query":{

               "filtered":{

                   "query": {

                          "match_all":{}               

                   },

                   filter:{

                          "terms":{

                                "price":[10,20] 

                          }

                   } 

              }

          }

    }

    ## 调用没有得到结果? 因为mapping没有指定not_analyzed

    GET /store/products/_search

    {

          "query":{

               "filtered":{

                   "query": {

                          "match_all":{}               

                   },

                   filter:{

                          "term":{

                                "productID":"QW123"

                          }

                   } 

              }

          }

    }

    GET /_analyze?text=QW123

    --发现分析结果呈小写qw123

    GET /store/_mapping

    DELETE /store

    ##解决办法:重新建立一个映射,让productID处于not_analyzed模式

    PUT /store

    {

          "mappings":{

               "products":{

                   "properties": {

                          "productID":{

                               “type”:“string”,

                               “index”:“not_analyzed”

                          }               

                   } 

              }

          }

    }

    2、bool过滤查询,可以实现组合过滤查询 

    "bool":{

         "must":[],

         "should":[], 可以满足,也可以不满足

         "must_not":[]

    }

    GET /store/products/_search

    {

          "query":{

               "filtered":{

                   "filter": {

                          "bool":{

                              "should":[

                                    {"term":{"price":20}},

                                    {"term":{"productID":"SD12342"}}

                              ],

                              "must_not":[

                                    {"term":{"price":30}}

                              ]

                          }                              

                   } 

              }

          }

    }

    3、嵌套查询

    4、and or not查询

        and  并且,类似于must

        or    或者,类似于should

        not  不是,类似于must_not

    GET /store/products/_search

    {

          "query":{

               "filtered":{

                   "filter": {

                          "or":[

                                    {"term":{"price":20}},

                                    {"term":{"productID":"SD12342"}}

                           ]

                   },

                   "query":{

                          "match_all":{}

                   } 

              }

          }

    }

    5、range过滤查询

         gt:>

         lt:<

         gte: >=

         lte : <=

    GET /store/products/_search

    {

          "query":{

               "filtered":{

                   "filter": {

                          "range":{

                              "price":{

                                    "gte":20,

                                    "lt":50

                              }

                          }                              

                   } 

              }

          }

    }

    6、过滤空和非空

         exists

         missing

    7、cache缓存

         

  • 相关阅读:
    Java之内存分析和String对象
    Android之MVC模式
    Java之排序总结
    Android之单元测试学习
    Silverlight 拖拽功能
    Silverlight 调用WebServices
    Silverlight IIS 7.5 部署SilverLight4网站以及问题解决
    Silverlight 控件和对话框 源自MSDN 参考
    Silverlight 动画示例
    Sliverlight 动画详细介绍
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/6651828.html
Copyright © 2011-2022 走看看