在不同方面进行过滤后,构面计数不会显示正确的数字

时间:2014-01-24 19:27:13

标签: elasticsearch tire

如果你有两个方面,让我们说类别和标签,最初计数是正确的,但在过滤其中一个方面后它们不会下降。我们的想法是,如果类别X中没有带有标记Y的记录,并且我们按类别X进行过滤,则标记Y的面数应为0.当然,其他方面计数在同一项(其他类别)方面计数不会下降,因为它们是OR而不是AND。我希望这是有道理的,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你是如何过滤你的方面的?喜欢这个?

GET /_search
{
  "query": {.....},
  "filter": { "term": { "some_field": "some_value"}},
  "facets: {.....}
}

如果是这样,那就不足为奇了。顶级filter参数用于在计算小平面后过滤搜索结果。事实上,在1.0中,由于这种混淆,它已被重命名为post_filter

您想要使用filtered查询:

GET /_search
{
  "query": {
    "filtered": {
      "query": {.....},
      "filter": { "term": { "some_field": "some_value"}}
    }
  },
  "facets: {.....}
}