Присоединения на стороне приложения Elasticsearch - PullRequest
0 голосов
/ 15 октября 2018

У меня есть два индекса в Elasticsearch, индекс system и индекс telemetry.Я хотел бы выполнить запросы и агрегации по индексу телеметрии, используя фильтры из системного индекса.Системный индекс относительно невелик и только изредка получает новые документы, но индекс телеметрии намного больше и постоянно получает новые документы.Это похоже на идеальную ситуацию для использования соединения на стороне приложения .

Я попытался эмулировать пример запроса по предыдущей ссылке, но оказалось, что запрос filtered равен устарел начиная с ES 5.0 .(Почему этот пример в текущей документации?!)

Вот мои запросы:

GET /system/_search
{
  "query": {
    "match": {
      "name": "George's system"
    }
  }
}

GET /telemetry/_search
{
  "query": {
    "bool":{
      "must": {
        "multi_match": {
          "operator": "and",
          "fields": ["systemId"]
          , [1] }  
        }
      }
    }
  }
}

Второй сбой с json_parse_exception, потому что для некоторыхпочему ему не нравятся символы [] после «полей».

Может ли кто-нибудь привести простой пример использования соединений на стороне приложения?

Как только такой запрос определен (возможно, в КибанеКонсоль Dev Tools) Есть ли способ визуализировать это в Kibana?

1 Ответ

0 голосов
/ 15 октября 2018

При использовании эластика невозможно выполнить два вложенных запроса, как в реляционной базе данных, где первый запрос использует ответ второго.Пример в соединении на стороне приложения означает, что вы фактически делаете два запроса (два разных запроса на эластичный) на стороне приложения.

  1. Первый запрос - списокидентификаторов, которые вам нужно отфильтровать.
  2. Второй запрос вы передаете список идентификаторов, которые вы получили в фильтр терминов.

Это работает, когда у вас не более 1024 значений дляSYSTEMID.Поскольку у запроса терминов есть ограничение на количество терминов.

Поскольку этот запрос невозможен, его нельзя визуализировать в кибане.

В таком случае вам придется пожертвовать немногои добавьте системный идентификатор в ваше отображение.

Удачи!

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