【问题标题】:Does Solr / Sunspot include new record in search query even if it's not indexed?Solr / Sunspot 是否在搜索查询中包含新记录,即使它没有被索引?
【发布时间】:2012-04-20 02:10:05
【问题描述】:

由于索引速度慢且资源密集,我只将 Solr 设置为在 12 小时内重新索引。所以在索引之前添加新记录时,无法搜索它,对吗?

如果是,我应该换成其他搜索系统吗?

【问题讨论】:

  • “应该”你吗?不知道我们如何回答这个问题。我认为记录在添加时已被编入索引 - 你确定不是吗?
  • @DaveNewton 它们通常是更新/创建的索引,但您可以对其进行调整。维克多:是的,如果它不在索引中,则无法使用索引找到它。
  • 谢谢大家的确认。

标签: ruby-on-rails solr sunspot


【解决方案1】:

文档仅在提交后可用于搜索。一旦提交给 Solr,它们就会被解析并转换为内部格式。那就是索引。

对于纯 Solr 系统,您的问题不太有意义。你有一个 RDBMS 并且你正在重新索引它吗?如果是这样,那么您是对的,Solr 仅在从数据库中获取记录、建立索引并提交时才会更新。

为了更短的延迟,有几个选项。如果您对每条记录都有一个时间戳,则可以定期仅重新索引更改的记录。他们将替换旧版本的记录。如果这样做,则需要专门处理已删除的记录,通常通过添加“已删除”列并为这些记录发出 Solr 删除命令。

数据输入处理程序支持增量查询,尽管它有点复杂。您还可以编写一些代码来读取数据库并以专用的 Solr XML 格式提交定期 Solr 更新。

频繁更新可能会损害搜索性能。 Solr 从缓存结果中获得了很多性能。这些缓存在提交后被清除。检查查询结果缓存中缓存命中率的统计页面。如果该值很高,那么频繁更新可能会导致性能问题。

【讨论】:

    猜你喜欢
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    相关资源
    最近更新 更多