由于索引速度慢且资源密集,我只将Solr设置为在12小时内重新索引。因此,在索引之前添加新记录时,无法搜索,我是对的吗?
如果是,我应该转到其他搜索系统吗?
答案 0 :(得分:2)
文档仅在提交后可用于搜索。一旦提交给Solr,它们就会被解析并转换为内部格式。这是索引。
对于纯Solr系统,您的问题没有多大意义。你有一个RDBMS,你重建索引吗?如果是这样,那么你是对的,只有在从数据库中提取记录,索引和提交记录时才会更新Solr。
对于较短的延迟,有几种选择。如果每个记录都有时间戳,则可以定期仅重新索引已更改的记录。他们将取代旧版本的记录。如果这样做,您需要特别处理已删除的记录,通常是添加“已删除”列并为这些记录发出Solr删除命令。
数据输入处理程序支持delta查询,但有点复杂。您还可以编写一些代码来读取数据库并以专用的Solr XML格式提交常规的Solr更新。
经常更新可能会影响搜索性能。 Solr从缓存结果中获得了很多性能。提交后会清除这些缓存。在统计信息页面中查看查询结果缓存中的缓存命中率。如果这很高,频繁的更新可能会导致性能问题。