美文网首页
Filtered query VS. filter

Filtered query VS. filter

作者: ifeelok0319 | 来源:发表于2017-07-11 16:10 被阅读290次

    filter的使用方法

    ES中filter的用法有两种,一种是filted query,如下:

    {
      "query":{
        "filtered":{
          "query":{
            "term":{"title":"kitchen3"}
          },
          "filter":{
            "term":{"price":1000}
          }
        }
      }
    }
    

    这种方式已经deprecated了,可以通过boolQuery实现。

    {
      "query": {
        "bool": {
          "must": {
            "term": {
              "term":{"title":"kitchen3"}
            }
          },
          "filter": {
            "term": {
              "price":1000
            }
          }
        }
      }
    }
    

    另一种是直接放在根目录:

    {
      "query":{
        "term":{"title":"kitchen3"}
      },
      "filter":{
        "term":{"price":1000}
      }
    }
    

    the order of keys in query JSON do not influence results.

    区别

    • 根目录中的filterquery后执行。在filter query先执行filter,不计算score,再执行query
    • 如果还要在搜索结果中执行aggregation操作,filter query聚合的是filterquery之后的结果,而filter聚合的是query的结果。

    参考文献

    相关文章

      网友评论

          本文标题:Filtered query VS. filter

          本文链接:https://www.haomeiwen.com/subject/dvjmhxtx.html