【发布时间】:2019-06-08 19:51:59
【问题描述】:
我很难弄清楚为什么这两个查询没有返回相同数量的结果(我使用的是 elasticsearch 2.4.1):
{
"nested": {
"path": "details",
"filter": [
{ "match": { "details.id": "color" } },
{ "match": { "details.value_str": "red" } }
]
}
}
{
"nested": {
"path": "details",
"filter": {
"bool": {
"must": [
{ "match": { "details.id": "color" } },
{ "match": { "details.value_str": "red" } }
]
}
}
}
}
第一个查询有更多结果。
我的猜测是第一个查询中的 filter 子句的工作方式类似于 or/should,但如果我将第二个查询中的 must 替换为 should,则查询会产生结果比这两个要多。
这些查询的含义有何不同?
恐怕我对索引文档的结构一无所知;我只知道每个查询返回多少行。
【问题讨论】:
标签: elasticsearch elasticsearch-2.4