为了在ElasticSearch中使用percolator,我需要索引搜索查询。但是,我们主要使用过滤器进行搜索。要为这些过滤器编制索引,它们必须为wrapped inside a query。
我知道有两种不同的方法可以实现这一目标。将过滤器包裹在filtered query:
中{
"query": {
"filtered": {
"filter": { ... }
}
}
}
{
"query": {
"constant_score": {
"filter": { ... }
}
}
}
首选哪种方法?为什么呢?
答案 0 :(得分:2)
虽然两者都会产生相同的结果,并且性能非常接近,但我更倾向于使用filtered
- 查询。它非常清楚地传达了意图。几个月后,你可能会从同一个问题开始,并想知道为什么你关心分数。 :)
答案 1 :(得分:0)
根据此link,"带有match_all查询的过滤查询会自动在内部转换为constant_score one"。所以听起来最好的选择是使用constant_score
并省略内部步骤。