像表连接一样连接 Elastic Search 中的两个索引

Sou*_*ity 7 elasticsearch elasticsearch-plugin

我对这个弹性搜索比较陌生。所以,我有一个名为post 的索引,其中包含如下文档:

{
"id": 1,
"link": "https:www.instagram.com/p/XXXXX/",
"profile_id": 11,
"like_count": 100,
"comment_count": 12
}
Run Code Online (Sandbox Code Playgroud)

我有另一个名为profile的索引,其中包含如下文档:

{
"id": 11,
"username": "superman",
"name": "Superman",
"followers": 12312
}
Run Code Online (Sandbox Code Playgroud)

因此,正如大家所看到的,我在名为 profile 的索引下拥有所有个人资料数据,在名为post的索引下拥有所有帖子数据。帖子文档中存在的“ profile_id 与配置文件文档中存在的“id”链接。

有什么办法,当我查询帖子索引并过滤掉帖子文档时,个人资料数据也会根据帖子文档中存在的“profile_id”与帖子文档一起显示?或者以某种方式获取这两个数据进行多索引搜索?

提前致谢,任何帮助将不胜感激。

gle*_*ota 7

出于性能考虑,Elasticsearch 鼓励您对数据进行非规范化,并根据您希望从查询中获得的响应对文档进行建模。但是,对于您的情况,我建议通过使用 Join 数据类型(链接到Elastic 文档)并使用父连接查询来运行搜索(链接到Elastic 文档)来定义关系后配置文件。

  • 对于多索引搜索,别名可能很有用。然后就可以根据profile id和id进行查询了。 (2认同)