【发布时间】:2016-05-20 19:34:20
【问题描述】:
我们有一些采用以下形式的 Elasticsearch 查询:
{
"query": {
"bool": {
"should": [
{
"query_string": {
"default_field": "content",
"query": "Lorem ipsum dolor sit amet"
}
},
{
"query_string": {
"default_field": "content",
"query": "Nunc ac auctor massa"
}
}
]
}
}
}
我们希望显示每个布尔子句的命中数。我们当前的蛮力方法是在幕后执行二次多重搜索,将每个子句拆分为自己的单独查询以获得单独的计数。这可能会变得非常昂贵,因为我们最多支持 50 个这样的子句,这可能会导致在后台执行另外 50 个查询。
我们已经寻找其他方法来提取计数,例如 Get matched terms from Lucene query 或 lucene get matched terms in query 但所有这些都涉及计算实际命中的 bean。这是令人望而却步的,因为我们可能拥有数千个。
是否有另一种更有效的方法/技术(最好在 Elasticsearch 中)来获取我们可能错过的那些计数?
【问题讨论】:
标签: elasticsearch