Я запрашиваю Elasti c в моем распознавателе GraphQL, как показано ниже. PeopleArray под вторым multi_match имеет значение Dynami c и заполнено числами (например, [101, 102, 103 ...]). Это для разных пользователей, чтобы получить свои сообщения. Если в peopleArray пользователя 165 элементов, он работает нормально. Однако у меня есть тестовые пользователи, у которых 1873 элемента в peopleArray, и запрос не работает. И мне может понадобиться поддержка пользователей с 60000 пунктов. По сути, я создаю систему обмена сообщениями для сотрудников компании, и все цифры - это все люди в их сети отправки сообщений. Если это не практичный способ сделать это, любые предложения будут оценены. Но если это возможно, как я могу получить свои результаты? (Еще не пробовал это в пользовательском интерфейсе Kibana.)
const esClient = new elasticsearch.Client({
host: config.elasticsearchRoot
});
const result = await esClient.search({
index: `${config.index.messageStream}`,
body: {
query: {
bool: {
must: [
{
multi_match: {
query: tenantId,
fields: [
"tenantId",
"discretionary.clientKey.systemTenantId",
"clientKey.systemTenantId",
"author.tenantId"
],
operator: "OR"
}
},
{
multi_match: {
query: peopleArray,
fields: ["author.peopleId", "details.recipient.peopleId"],
operator: "OR"
}
}
]
}
},
from,
size,
docvalue_fields: [
{
field: "sortDate",
format: "use_field_mapping"
}
],
sort: {
sortDate: {
missing: "_last",
unmapped_type: "long",
order: "desc"
}
}
}
});```