Я с трудом пытаюсь выяснить, почему эти два запроса не возвращают одинаковое количество результатов (я используюasticsearch 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
, запрос даст большее количество результатов, чем у этих двух.
Чем отличается значение этих запросов?
Боюсь, я ничего не знаю о структуре проиндексированных документов; все, что я знаю, это сколько строк возвращает каждый запрос.