我正在尝试检索在任何shipping\u addr*字段中具有任何值(法国)或(世界范围)或(世界范围)的文档,但我需要对每个文档计数一次,即使文档中存在多个匹配项。我的方向对吗?
一般来说,我应该阅读/搜索什么来理解在几个匹配情况下的计数命中逻辑?
GET /data/_search
{
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "shipping_addr*",
"query": "(France) OR (worldwide) OR (world wide)"
}
}
]
}
}
}
1条答案
按热度按时间jljoyd4f1#
您应该使用explain api来了解特定搜索查询是如何工作的,以及某些文档是如何匹配或不匹配的。
关于你的第一点,我不清楚你到底想要实现什么,你应该总是添加一些例子来说明清楚,但是你可以看看布尔查询,它是用来解决这个问题的,我猜你正在寻找
should
相当于OR
.而不是
query string
我建议您使用布尔查询,它在语法上不太严格,在官方文档中也有建议如果不需要支持查询语法,请考虑使用匹配查询。如果您需要查询语法的特性,请使用简单的\u查询\u字符串查询,它不太严格。