lucene - 仅重新索引在 solr 停机期间更改的模型的最佳方法是什么?

标签 lucene solr sunspot sunspot-rails

如果我有数百万条用户记录,其中一些文本字段在创建和更新时被索引到 solr,我如何返回并重新索引从未进入 solr 的少数记录?

即如果 solr 在一天中停机几分钟,并且数百万条记录中的大约 300 条记录从未被编入索引怎么办。

我不想重新索引数百万条记录,只需要 300 条。

最佳答案

管理此问题的一个好方法是在创建和更新时将记录 ID 插入到队列表中,然后有一个稍后运行的进程来为记录编制索引。这样,如果 Solr 出现故障,您不必担心哪些记录未被处理,它们将继续坐在队列中直到被处理。这样做的好处是你的数据库不必等到solr更新完成再完成事务。缺点是 Solr 不能与数据库中的内容完美同步。您可以调整队列读取程序的运行频率以满足您的需求。

关于lucene - 仅重新索引在 solr 停机期间更改的模型的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5883899/

相关文章:

ruby - 使用 rails 和 mongodb 重新索引 solr 时出错

ruby-on-rails - 用太阳黑子重新索引一个特定的记录

lucene - Sitecore 7 ContentSearch API 是否会从查询中删除停用词?

python - 是否有针对 python 的开放搜索解决方案?

java - 为什么 Apache Nutch 清理作业在云模式下使用 Apache Solr 失败

java - SecureRandom 返回错误的一般声明 - Java

java - 在 hibernate 搜索中应用多个分析器?

java - Lucene:由于我只使用一个线程,因此删除其源代码中的所有锁是否安全?

import - Solr - 从数据库导入日期时间字段 -> 2 小时差异

solr - Glass.Mapper.Sc 是否使用索引字段进行 sitecore7 搜索