如何从2个不同的ElasticSearch索引中获取信息?



所以,我有2个索引在我的Elasticsearch服务器。我需要从第一个索引中收集结果,对于每个结果,我需要从第二个索引中收集信息。

怎么做?我尝试了foreach处理器,但是到目前为止还没有成功。

Tky

我需要从第一个索引收集结果,对于每个结果,我需要从第二个索引收集信息。

除非你创建父/子关系,否则在ElasticSearch中不可能。

然而,注意:

在Elasticsearch中,良好性能的关键是将数据反规范化到文档中。每个join字段、has_child或has_parent查询都会给您的查询性能增加一个显著的负担.

处理应用程序中多个索引的读取或重新考虑索引映射

foreach处理器用于摄取管道,即在索引时完成的东西。因此,当你试图收集结果时,它不会帮助你。

一般来说,在一个查询中不可能查询另一个索引(它可能位于另一个分片上)。

在某些情况下,可以使用连接字段。有性能影响,仅在特定情况下推荐使用。

如果你不在连接字段用例中,你可以重构你的数据来使用嵌套对象,它将比连接字段性能更高。

否则,您最好在应用程序代码中运行多个查询(也许您可以获取所有的"次要查询")。结果只使用一个查询,所以你总共有2个查询?)

相关内容

  • 没有找到相关文章

最新更新