【问题标题】:How do I optimize the solr indexing using mysql如何使用 mysql 优化 solr 索引
【发布时间】:2014-11-20 11:44:39
【问题描述】:

我正在使用 Mysql 将数据索引到 SOLR。早些时候数据较少,因此索引很快就发生了,没有任何延迟。现在我的数据包含近 300 万行,mysql 查询总是超时,因此 SOLR 无法相应地索引数据。有没有办法使用 mysql 快速索引 SOLR 或者可以在 SOLR 中进行任何调整?请帮忙。

【问题讨论】:

    标签: java php mysql solr


    【解决方案1】:

    如果你不使用incremental / delta indexing,你应该开始这样做。这样,只有自上次运行索引后发生更改的行才会再次被索引,从而减少 MySQL 的影响和行数。

    此外,JDBCDataSource(我猜你正在使用)supports the batchSize parameter,它告诉 JDBC 驱动程序限制每个查询中的文档数量 - 并发出多个查询。

    如果您在检索 SQL 内容(例如增量导入)时对 SQL 内容执行任何类型的过滤,您还应该注意为您的数据设置可用索引。

    【讨论】:

    • 我也在使用带有 last_update 时间戳的增量导入器。我获取了在 30 分钟之前更改的所有数据。但是该查询也超时了。这主要是因为我有 15 个表在 mysql 增量导入查询中进行左连接。那么有什么我可以分批做的吗???
    • 至少有两个选项:使用 MySQL 解释功能来查看为什么您的查询花费了这么多时间,并优化它以尽可能少地返回尽可能少的查找。如果您正在执行增量导入并且每次导入看到 300 万行更改 - 如果这是一个问题,请更频繁地执行导入。添加适当的索引。另一种选择是在您的 DIH 配置中使用多个级别的实体,以便 Solr 可以在代码本身中进行连接(并根据需要缓存每个查找)。它可能有帮助,也可能没有。试试看。
    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 2011-12-21
    • 2018-11-01
    • 1970-01-01
    • 2018-12-09
    • 2022-01-26
    • 2011-09-03
    • 2016-05-18
    相关资源
    最近更新 更多