【发布时间】:2016-12-16 06:55:37
【问题描述】:
我正在使用 ES 5。在 C# 上使用 Nest lib。
我在 ES 上有两个索引。一个有联系信息,另一个有联系事件。我系统中的每个客户都可以有很多联系人,每个联系人都可以触发更多的事件。几乎每个联系动作都是一个事件。
我在“联系人”索引中拥有所有联系信息,在“事件”索引中拥有我的所有活动信息。
所以我有一个可以按联系信息和事件过滤的搜索。我遇到的问题是如何在一个搜索中加入两个搜索,一个用于联系人,一个用于事件。
现在我有两个查询,首先我获取匹配的联系人,然后在事件中搜索这些联系人 ID。问题是第一次搜索可以返回数以千计的联系人 id,我需要将所有这些都提供给第二次搜索。
有没有更好的方法来做到这一点?或者我应该重新考虑我的索引,例如将联系人和事件存储在一起并使用父/子策略?
【问题讨论】:
-
您查询的最终目标是什么?要获取与搜索查询匹配的联系人的所有事件?
-
最终的目标是获取联系人,但是很多联系人信息是保存为事件的,几乎是每个联系人的动作。因此,搜索需要匹配姓名、姓氏等联系信息和联系事件,例如他们是否看到电子邮件、导航到页面等。
标签: c# elasticsearch nest