Что мне делать, если моя строка запроса вasticsearch слишком длинная и поиск не работает? - PullRequest
1 голос
/ 14 марта 2020

Я запрашиваю 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"
           }
         }
       }
     });```


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...