我有一个分类广告网站。用户可以投放广告,编辑广告,查看广告等。
每当用户投放广告时,我都会向Solr添加文档。 但是,我不知道何时提交它。提交减慢了我的阅读速度。
我该怎么办?每12小时左右自动提交一次?
另外,我应该如何进行优化?
答案 0 :(得分:137)
关于提交/优化的更多细节:
提交:在索引文档索引时,在运行commit命令之前,不会显示所做的任何更改。因此,运行commit命令的时间实际上取决于您希望通过搜索引擎在您的站点上显示更改的速度。然而,这是一个繁重的操作,所以应该分批完成,而不是每次更新后。
优化:这类似于硬盘驱动器上的碎片整理命令。它会将索引重组为段(提高搜索速度)并删除任何已删除(替换)的文档。 Solr是一个只读数据存储,因此每次索引文档时,它都会将旧文档标记为已删除,然后创建一个全新的文档来替换已删除的文档。 Optimize将删除这些已删除的文档。您可以通过转到Solr Statistics页面并查看numDocs与maxDocs数字来查看搜索文档与已删除文档的数量。两个数字之间的差异是索引中已删除(不可搜索的)文档的数量。
此外,Optimize从旧索引构建一个完整的新索引,然后在完成后切换到新索引。因此,该命令需要两倍的空间来执行操作。因此,您需要确保索引的大小不超过可用硬盘空间的%50。 (这是一条经验法则,由于删除了文件,它通常需要少于50%)
索引服务器/搜索服务器: Paul Brown是正确的,因为solr的最佳设计是将服务器专用并调整进行索引,然后将更改复制到搜索服务器。您可以将索引服务器调整为具有多个索引端点。
eg: http://solrindex01/index1; http://solrindex01/index2
由于索引服务器没有搜索内容,您可以使用不同的内存占用和索引加温命令等设置它。
希望这对每个人都有用。
答案 1 :(得分:37)
实际上,经常提交和优化会使事情变得非常缓慢。它太重了。
经过一天的搜索和阅读后,我发现了这一点:
1-优化会导致索引在大小优化的同时加倍,并使事情变得非常缓慢。
2-每次添加后提交并不是一个好主意,最好每天提交几次,然后每天最多只进行一次优化。
3-提交应该在solrconfig.xml文件中设置为“autoCommit”,并且应该根据您的需要进行调整。
答案 2 :(得分:7)
答案 3 :(得分:1)
先试试。如果您因为阅读它可能会导致性能问题而避免使用简单而优雅的解决方案,那将是非常糟糕的。换句话说,请避免使用premature optimization。