由于索引速度慢且资源密集,我只将 Solr 设置为在 12 小时内重新索引。因此,在索引之前添加新记录时,无法搜索它,对吗?
如果是,我应该换成其他搜索系统吗?
由于索引速度慢且资源密集,我只将 Solr 设置为在 12 小时内重新索引。因此,在索引之前添加新记录时,无法搜索它,对吗?
如果是,我应该换成其他搜索系统吗?
文档仅在提交后可用于搜索。一旦提交给 Solr,它们就会被解析并转换为内部格式。那就是索引。
对于纯 Solr 系统,您的问题不太有意义。你有一个 RDBMS 并且你正在重新索引它吗?如果是这样,那么您是对的,Solr 仅在从数据库中获取记录、建立索引并提交时才会更新。
对于更短的延迟,有几个选项。如果您对每条记录都有一个时间戳,则可以定期仅重新索引更改的记录。他们将替换旧版本的记录。如果这样做,则需要专门处理已删除的记录,通常通过添加“已删除”列并为这些记录发出 Solr 删除命令。
数据输入处理程序支持增量查询,尽管它有点复杂。您还可以编写一些代码来读取数据库并以专用的 Solr XML 格式提交定期的 Solr 更新。
频繁更新可能会损害搜索性能。Solr 从缓存结果中获得了很多性能。这些缓存在提交后被清除。检查查询结果缓存中缓存命中率的统计页面。如果该值很高,则频繁更新可能会导致性能问题。