我正在使用ES 5.在C#上使用Nest lib。
我在ES上有两个索引。一个有联系信息和其他联系事件。我系统中的每个客户都可以拥有大量的联系人,每个联系人都可以触发更多的事件。几乎每个联系人都是一个事件。
我在"联系人"中有所有联系信息。索引,以及我在"事件"中的所有活动信息索引。
所以我有一个可以按联系信息和事件过滤的搜索。我遇到的问题是如何在一次搜索中加入两个搜索,一个用于联系人,另一个用于事件。
现在我有两个查询,首先我得到匹配的联系人,然后我搜索事件中的那些联系ID。问题是第一次搜索可以返回联系人ID的内容,我需要为所有这些搜索提供第二次搜索。
有更好的方法吗?或者我应该重新考虑我的索引,例如将联系人和事件存储在一起并使用父/子策略?
答案 0 :(得分:0)
是的,你需要选择在一个索引中存储数据还是使用父子模式,第一种方式更快,当你有很多事件并经常添加新事件时,第二种方式更方便。不过,最好不要为单个查询中提到的数千个联系人获取所有事件,而是使用滚动API并在处理数据时获取数据。