如何优化solr指数

如何优化solr指数。 我想优化我的solr索引,我尝试在solrconfig.xml中更改它被索引,但我想知道如何validation它们是否已经过优化以及索引优化涉及哪些内容。

我发现这是优化Solr索引的最简单方法。 在我的上下文中,“优化”意味着合并所有索引段。

curl http://localhost:8983/solr//update -F stream.body=' ' 

在开始之前检查相应核心的大小。

开放1号航站楼:

 watch -n 10 "du -sh /path to core/data/*" 

打开终端2并执行:

 curl http://hostname:8980/solr//update?optimize=true 

而不是“核心”,更新您的核心名称。

您可以看到核心的大小将逐渐增加,大约是索引数据大小的两倍,并且会突然减少。 这需要时间取决于您的solr数据。

例如,50G索引数据峰值接近90G,下降到优化的25G数据。 通常这个数据量需要30-45分钟。

当我删除文档时,为什么我的索引目录不会(立即)变小? 合并? 优化?

您需要传递optimize=true来更新solr请求以优化solr。

HTTP:// [主机名]:[端口] / solr的/更新优化=真?

有不同的方法来优化索引。 你可以触发一个solr基本脚本: http : //wiki.apache.org/solr/SolrOperationsTools#optimize

您还可以在(完全)导入或添加新数据时设置optimize=true 。 …或者只是使用optimize=true触发提交

也许这对您的需求也很有趣: http : //wiki.apache.org/solr/UpdateXmlMessages#A.22commit.22_and_.22optimize.22

为了测试您做了多少更改,您只需编写自定义索引器并添加随机生成的内容。 添加大量文档(500.000或1.000.000)并测量所需的时间。

在上面分享的文章之后,我给自己做了一个自定义索引器,并且我管理员优化了将文档索引80%所花费的时间。