【问题标题】:How to index normalized SQL database for Elasticsearch如何为 Elasticsearch 索引规范化的 SQL 数据库
【发布时间】:2020-07-01 11:35:59
【问题描述】:

我已经用一个与其 Elasticsearch 索引同步的表为数据库 (SQL) 建立了索引。现在我想用多个规范化表索引一个数据库。那么,我应该如何索引这些表呢?我应该在索引数据库表期间在我的logstash文件中编写多个 JOIN 查询,还是应该一一索引每个表并执行多个索引搜索?但是对于第二种方式,我不知道如何为相关的 SQL 查询形成弹性搜索查询。我是 Elasticsearch 的新手。因此,我们将不胜感激任何有关该问题的指导。在这里,我还附上了数据库的架构。还有一件事,我正在使用PHP客户端搜索和显示数据。

【问题讨论】:

    标签: php sql elasticsearch logstash kibana


    【解决方案1】:

    首先,一切都取决于您希望如何在 elasticsearch 中构建索引,也就是说,您是希望为每个表创建索引还是为多个表创建索引。
    我的建议是:

    1. 在数据库中创建一个触发器以审核每个更改(插入、更新、删除)并将其与操作和状态一起存储在新闻表中。
    2. 为每种类型的新奇事物或表格创建一个视图,该视图将取决于您希望如何索引所有内容。
    3. 使用 jdbc 调用视图表示状态等于挂起(原始)。
    4. 使用过滤器标准化您的数据并将其调整为您的弹性搜索结构。
    5. 使用 JDBC 输出来更新数据库,方法是将 newness 设置为已处理,以防止它出现在查询中。

    除了这些点之外,我的建议是您将这些表放在一个索引中,例如,员工,您可以在其中为数据库中的每个实体(例如部门等)创建不同的嵌套对象。添加代码标签和每一个的描述。有没有不清楚的可以检查一下?

    【讨论】:

    • 那么索引的更好方法是什么?我应该在不同的索引中索引每个表还是应该通过连接查询在单个索引中索引所有表?
    • 根据我的经验并看到您的表之间的关系,我建议您在单个索引中索引所有内容。
    猜你喜欢
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2011-07-13
    • 2012-11-18
    • 2011-04-05
    • 2018-09-13
    • 2018-10-30
    • 2016-04-02
    相关资源
    最近更新 更多