1

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

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

4

1 回答 1

2

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

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

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

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

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

于 2012-04-20T17:38:06.977 回答