elasticsearch 刻面计数为';t在不同方面过滤后显示正确的数字
如果你有两个方面,比如说类别和标签,一开始计数是正确的,但在过滤其中一个方面后,计数不会下降。其思想是,如果类别X中没有带标记Y的记录,并且我们按类别X进行筛选,那么标记Y的方面计数应该为0elasticsearch 刻面计数为';t在不同方面过滤后显示正确的数字,elasticsearch,tire,elasticsearch,Tire,如果你有两个方面,比如说类别和标签,一开始计数是正确的,但在过滤其中一个方面后,计数不会下降。其思想是,如果类别X中没有带标记Y的记录,并且我们按类别X进行筛选,那么标记Y的方面计数应该为0 当然,同一术语(其他类别)中的其他方面计数不会下降,因为它们是OR而不是AND 你是如何过滤你的方面的?像这样 GET /_search { "query": {.....}, "filter": { "term": { "some_field": "some_value"}}, "facets
当然,同一术语(其他类别)中的其他方面计数不会下降,因为它们是OR而不是AND 你是如何过滤你的方面的?像这样
GET /_search
{
"query": {.....},
"filter": { "term": { "some_field": "some_value"}},
"facets: {.....}
}
如果是这样,那就不足为奇了。顶级过滤器
参数用于在计算面后过滤搜索结果。事实上,在1.0中,正是由于这种混乱,它被重命名为post_filter
您想改用过滤的查询:
GET /_search
{
"query": {
"filtered": {
"query": {.....},
"filter": { "term": { "some_field": "some_value"}}
}
},
"facets: {.....}
}
你能举一个更明确的例子吗?刻面查询、文档等。这完全有道理,我假设这就是问题所在。但是,如果我像这样实现它并选择category X,那么所有其他类别的facet计数是否会减少到0?(为了讨论,我假设事物只有一个类别)是的,除非我误解了你。更多细节可能会有所帮助?我有两个过滤器:一个用于标记,一个用于类别。其思想是,同一类型的过滤器应该是加法的,而不同类型的过滤器应该缩小结果的范围。因此,如果我对一个类别进行过滤,它仍然会在facet中显示所有可用的类别(这是有意义的,因为它是相加的),但会根据它们在过滤的类别中是否匹配来减少标记计数。这有意义吗?Details=code:)最好是“我得到了X(示例),但我期待着Y”。更容易理解