0
Я использую Elastic Поиск в узле Js для запроса нескольких индексов, Как получить результаты от каждого из индекса:Как получить результаты поиска из каждого индекса
var esClient = new elasticsearch.Client({host: config.elasticsearch.host});
esClient.search({
index: ["abc", "xyz"],
type: ["abc", "xyz"],
body: {
query: {
multi_match: {
query: q,
type: "cross_fields",
analyzer: "ac_search_analyzer",
operator: op,
fields: ["a^4", "b^4", "c^2", "d", "e"]
}
}
},
_sourceInclude: ["a", "b", "c"],
size: 10
}).then(function (resp) {
//do something
}
Теперь я получаю только все 10 результатов от abc
и никаких результатов не получено от xyz
. Что мне следует сделать, чтобы сказать 5 результатов от abc
и 5 от xyz
.
Так что я должен написать поисковый запрос для каждого индекса? Что может быть лучшим программным способом сделать это для нескольких индексов? – Saurabh
Я не уверен, что вы подразумеваете под «лучшим программным способом»? Если запрос отличается для каждого индекса, его нет, но нужно построить запрос для индекса. Если запрос одинаков, вы всегда можете назначить его переменной и повторно использовать его при построении запроса 'msearch'. Не уверен, что это то, о чем вы спрашиваете? см. обновленный пример – keety
@saurabh это не отвечает на вопрос? – keety