Объединение двух индексов в Elasti c Поиск в виде объединения таблиц - PullRequest
0 голосов
/ 26 января 2020

Я относительно новичок в этом поиске elasti c. Итак, у меня есть индекс под названием post , который содержит такие документы:

{
"id": 1,
"link": "https:www.instagram.com/p/XXXXX/",
"profile_id": 11,
"like_count": 100,
"comment_count": 12
}

У меня есть еще один индекс с именем profile , которые содержат такие документы:

{
"id": 11,
"username": "superman",
"name": "Superman",
"followers": 12312
}

Итак, как вы, ребята, видите, у меня есть все данные профилей в индексе под названием profile и все публикует данные под индексом post . "profile_id" , присутствующий в почтовом документе, связан с "id" , присутствующим в документе профиля.

Есть ли способ, когда я запрашиваю почтовый индекс и фильтрую почтовые документы, данные профиля также отображаются вместе с почтовым документом на основе "profile_id" настоящего в почтовом документе? Или как-то получить обе данные, выполняя многоиндексный поиск?

Заранее спасибо, ребята, любая помощь будет оценена.

1 Ответ

2 голосов
/ 26 января 2020

Для повышения производительности Elasticsearch рекомендует вам денормализовать ваши данные и смоделировать ваши документы в соответствии с ответами, которые вы получите от ваших запросов. Однако в вашем случае я бы предложил определить пост-профиль отношения, используя тип данных Join (ссылка на Elasti c документация ) и используя запросы родительского соединения для запуска поиска (ссылка на Elasti c документация ).

...