从一对多关系的关系数据库表中索引数据的最佳方法是

时间:2018-07-27 06:36:02

标签: elasticsearch full-text-search elasticsearch-6

能否让我知道在弹性搜索我的方案中索引记录的最佳方法。

我的场景是:

1)需要从oracle表中索引约4000万条记录,该表的条目具有一对多的关系记录。而且记录的唯一性是基于4列的组合键

2)建立索引后,搜索应在所有字段上支持“全文本搜索”

3)需要支持对选定字段的过滤和排序。

浏览了官方文档后,我发现了几种选择,但想知道下面哪种方法最有用

1)为表中的每个记录在弹性索引中创建一个条目

2)根据复合键创建一个嵌套的json对象,然后添加此弹性索引

3)父子关系机制和应用程序侧联接不适合我的情况

谢谢

Girish T S

1 个答案:

答案 0 :(得分:0)

您的问题不是特别清楚,这是我的理解:您在一个表中有4000万个子记录,每个子记录都引用了一个父记录。 您希望索引记录,以便能够搜索其子项符合特定条件的父记录。

这里有两种解决方案:

  • 为每个父级索引一个文档,所有子级都被索引为父级内的嵌套文档

  • 将每个子记录作为一个单独的文档编制索引,并在ElasticSearch中使用parent-child relationship

第一个解决方案将具有更好的性能,但这意味着每次更新子级时,都必须使用其所有子级重新索引完整的父文档。

无论如何,您要说的是父子方案不适合您的情况,因此您只剩下第一个解决方案。