使用类型过滤器与在url / api中指定doc_type之间有区别吗?

时间:2015-06-30 22:31:42

标签: elasticsearch

标题说明了一切:使用类型过滤器与在url / api中指定doc_type(s)之间是否存在差异,即

...
"filter" : {
    'type': {
        'value': 'my_doc_type'
    }
}
....

vs

GET /my_index/my_doc_type/_search

修改: 我的意思是过滤查询中的过滤器;但是,我将按原样保留问题,以便从回复中收集更多信息。

1 个答案:

答案 0 :(得分:1)

在运行查询之前,指定网址中的类型将应用

运行查询之后,将类型指定为过滤器将应用

作为旁注,使用过滤后的查询而非过滤器的功能与在URL中指定类型的功能类似,因为它将在运行查询之前应用

如果您使用构面,请注意过滤器与过滤查询的功能,因为它们在构面上的功能不同。

过滤后的查询:

{
  "query":{
    "filtered":{
      "query":{
        "term":{"name":"franky"}
      },
      "filter":{
        "term":{"age":73}
      }
    }
  }
}

过滤器:

{
  "query":{
    "term":{"name":"franky"}
  },
  "filter":{
    "term":{"age":73}
  }
}