我有更大的Solr索引大小。该索引包含300万份文件。我需要经常更新一些文档。但每次Solr提交需要一些时间,因为索引包含数百万个文档。每次提交都会打开一个新的搜索者。所以第一次执行搜索需要一些时间。有没有办法以有效的方式更新文件?提前谢谢。
答案 0 :(得分:1)
您可以检查Solr 4 soft commits,这将使索引更快。新文件将在提交后立即提供,但不会保留为索引。您可以决定偶尔执行一次硬提交。
软提交要快得多,因为它只能使索引更改可见,并且不会fsync索引文件或写入新的索引描述符。如果JVM崩溃或断电,则上次硬提交后发生的更改将丢失。具有接近实时要求的搜索集合(希望索引更改能够快速对搜索进行查看)将需要经常进行软提交,但不太频繁地提交。
可以使用事务日志执行恢复。
如果丢失文档对您来说是个问题,您可以为Solr配置Master Slave架构。 Master是索引发生的地方,也是执行搜索的从站,因此索引和提交时间不会对搜索产生太大影响。但是,会有延迟,也取决于你的提交频率。