У меня есть несколько индексов эластичного поиска, и я хотел бы получить doc_count
того, сколько документов соответствует запросу для каждого индекса (даже если ни один документ не сопоставлен по индексу). Я попробовал это (используяasticsearch.js):
{
index: 'one,or,many,indices,here',
query: {
query_string: {
query: 'hello',
},
},
aggs: {
group_by_index: {
terms: {
field: '_index',
min_doc_count: 0,
},
},
},
from: 0,
size: 20,
};
Это работает, только если я указываю все индексы на клавише index
. Однако я не всегда хочу сопоставлять документы по всем показателям в результатах поиска.
Итак, я придумал:
{
index: 'all,indices,here',
query: {
bool: {
must: [
{
query_string: {
query: 'hello',
},
},
{
terms: {
_index: 'only,search,hits,indices,here',
},
},
],
},
},
aggs: {
group_by_index: {
terms: {
field: '_index',
min_doc_count: 0,
},
},
},
from: 0,
size: 20,
};
Но тогда я получаю doc_count: 0
для индексов, где есть совпадения, потому что индекс отсутствует в запросе bool.
Как я могу получить doc_count
для всех индексов, но не получить результаты поиска из нежелательных индексов?