【问题标题】:Which is the best way to index the data from relational database table of One to many relationship从一对多关系的关系数据库表中索引数据的最佳方法是什么
【发布时间】:2018-07-27 06:36:01
【问题描述】:

您能否告诉我在弹性搜索中为我的场景索引记录的最佳方法。

我的场景是:

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

2) 建立索引后,Search 应支持对所有字段进行“全文搜索”

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

查看官方文档后,我发现了几个选项,但想知道以下哪种方法最有用

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

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

3)父子关系机制和应用端join不适合我的场景

谢谢

Girish T S

【问题讨论】:

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


    【解决方案1】:

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

    这里有两种解决方案:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 2023-03-09
      • 1970-01-01
      • 2016-08-09
      相关资源
      最近更新 更多