我在Elastic中有两个索引:Track和Messages。 每个索引都有ServiceId字段。
“曲目”索引中的搜索始终由索引中的字段(精确值)执行。 邮件中的搜索始终通过索引中的自由文本搜索来执行。
我需要从两个索引中进行交叉搜索。要通过“跟踪”索引中的确切字段值找到ServiceId,然后通过自由文本搜索从“消息”索引中找到ServiceId,然后将结果与ServiceIds数组相交。
对用户而言,实际结果是从交叉操作中接收到的这些ServiceId的轨道列表。
我该怎么办?每次搜索(来自“跟踪和消息”)都应返回所有文档,然后才应执行相交,但据我了解,Elastic无法返回所有文档(假设每个索引中都有亿万个文档),并且相交操作不正确。 ..
答案 0 :(得分:0)
可以通过使用别名来实现。
请参阅https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html,以获取更多信息。
在两个索引中都应该有一些公共字段,在这种情况下,它是serviceIds。