Объединить (независимые) индексы в эласт c поиск - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть два индекса в elasti c search и я хочу объединить их в поиске.

Один индекс имеет несколько статей, например,

(
    [id] => 25
    [name] => my test artcile
    [city] => [
           id => 123
    ]
)

Второй индекс имеет названия городов, например,

(
    [id] => 123
    [name] => my city
)

Так что, если я выполню поисковый запрос в статьях, я хочу получить такой результат, когда в результатах также используется название города, например,

(
    [id] => 25
    [name] => my test artcile
    [city] => [
           id => 123
           name => my city
    ]
)

Есть ли способ сделать это? В противном случае мне пришлось бы расширить импорт статей, чтобы напрямую добавить название города, но предпочтительным способом является соединение индексов.

1 Ответ

1 голос
/ 24 февраля 2020

Объединение документов из независимых индексов во время поиска невозможно / поддерживается Elasticsearch. Обычно это делается через присоединения на стороне приложения (ваше приложение отправляет 2 запроса в Elasticsearch:

  • первый запрос для получения соответствующих документов
  • второй запрос для поиска стран для документов, которые вы полученный из первого запроса

Тип Elasticsearch join позволяет объединять документы только с одним и тем же индексом, но не по индексам. Запрос terms можно использовать для поиска значений в другом индексе для фильтрации. документы в другом индексе, основанном на этих значениях.

Как уже упоминалось в разделе комментариев, Elasticsearch не является реляционной базой данных, он просто поставляется с некоторыми базовыми возможностями c для поддержки обработки отношений. СУБД, которую вы выполняете «дорогими» объединениями во время запроса, СУБД оптимизированы для быстрой записи (меньшие объекты, единичная версия истины, однократная запись, поддержка транзакций и т. Д. c). Поисковые системы оптимизированы для быстрого чтения и поисковых запросов, поэтому мы просим вас выполнить "расходы sive »присоединяется заранее и индексирует ваши денормализованные документы. Как правило, это предпочтительный подход.

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