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



标题说明了一切:使用类型过滤器与在url/api中指定doc_type(即)之间有区别吗

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

GET /my_index/my_doc_type/_search

编辑:我的意思是作为过滤查询中的过滤器;然而,我将保留这个问题,这样就可以从回答中收集到更多的信息。

是。

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

将类型指定为筛选器将在运行查询后应用

附带说明一下,使用过滤查询而不是过滤器将类似于在URL中指定类型,因为它将在运行查询之前应用

如果您使用facet,请注意Filters与Filtered查询的功能,因为它们在facet上的功能不同。

过滤查询:

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

过滤器:

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