Joining two indexes in Elastic Search like a table join

痴心易碎 提交于 2021-01-28 21:14:42

问题


I am relatively new to this elastic search. So, I have an index called post which contain documents like this:

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

I have another index called profile which contain documents like this:

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

So, as you guys can see, I have all profiles data under the index called profile and all posts data under the index called post. The "profile_id" present in the post document is linked with the "id" present in the profile document.

Is there any way, when I am querying the post index and filtering out the post documents the profile data will also appear along with the post document based on the "profile_id" present in the post document? Or somehow fetch the both data doing a multi-index search?

Thank you guys in advance, any help will be appreciated.


回答1:


For the sake of performance, Elasticsearch encourages you to denormalize your data and model your documents accordingly to the responses you wish to get from your queries. However, in your case, I would suggest defining the relation post-profile by using a Join datatype (link to Elastic documentation) and using the parent-join queries to run your searches (link to Elastic documentation).



来源:https://stackoverflow.com/questions/59921816/joining-two-indexes-in-elastic-search-like-a-table-join

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!