Solr“实时”索引

时间:2011-08-10 13:06:11

标签: database indexing solr

我知道有几个与此相似的问题,但它们并没有提供一个简单的答案来解决手头的问题。对不起,如果你认为这是重复的,但我认为明确和可理解的答案会使许多人受益。所以,问题。

Solr索引更新能否自动化?如果他们可以,最好的方法是什么?

这是一个简单的用例来澄清问题:我有一个数据库表,其中包含几列不同类型的数据。有一个用于管理数据的Web应用程序。我有单独的Solr服务器来索引上面提到的表中的指定列。如何在用户添加,删除或修改所述表中的数据时,Solr会注意到已更改并修改索引。

它必须是“实时”。这意味着几秒钟后就会发生变化。当然,对于大量数据,它可能更多。

提前致谢

2 个答案:

答案 0 :(得分:7)

这里有两个问题:

  

Solr索引更新可以自动化吗?

是的,他们可以,而且他们应该始终是自动化的。您不希望为每次更改手动启动索引过程。

  

它必须是“实时”。

我已经提到了一些减少更改数据和更新索引in this answer之间延迟的方法。您可以使用autoCommit确保在更新的x秒内提交数据。根据时间间隔,您需要减少自动装配并调整其他设置,有关详细信息,请参阅this

另请密切关注NRT wiki page有关此问题的相关信息和解决方案。

答案 1 :(得分:3)

您可能想看看使用RankingAlgorithm 1.2的Apache Solr 3.3。它支持NRT(近实时索引),可以更新10,000 docs / sec。您可以在更新期间同时搜索。您无需提交或关闭搜索者。您可以从这里获得有关使用Solr 3.3和NR3的NRT的更多信息:

http://solr-ra.tgels.org/wiki/en/Near_Real_Time_Search_ver_3.x