Solr自动提交和自动优化?

3 php java mysql database solr

我很快就会将我的网站上传到VPS.它是一个分类广告网站,使用Solr与MySql集成.

每当放入或删除新的分类时,Solr都会更新.

我需要一种方法来制作commit()optimize()自动化,例如每3个小时左右一次.

我怎样才能做到这一点?(请详细说明)什么时候优化?

谢谢

nuq*_*qsa 9

您可以设置一个cron任务,定期执行对Solr REST接口的远程调用,例如:

curl 'http://<SOLR_INSTANCE_URL>/update?optimize=true'
Run Code Online (Sandbox Code Playgroud)

此处查找有关更新Solr索引的更多信息.

引用Solr教程:

提交可能是一项昂贵的操作,因此最好对批处理中的索引进行许多更改,然后在结束时发送提交命令.除了将所有索引段合并为单个段之外,还有一个与提交相同的优化命令,使搜索速度更快,并导致删除任何已删除的文档.

更新: 此外,可以在solrconfig.xml中启用自动提交功能(在该UpdateHandler部分内):

<autoCommit>
      <maxDocs>10000</maxDocs> <!-- maximum uncommited docs before autocommit triggered -->
      <maxTime>86000</maxTime> <!-- maximum time (in MS) after adding a doc before an autocommit is triggered -->
</autoCommit>
Run Code Online (Sandbox Code Playgroud)

  • 是的,优化执行提交以及将所有索引段合并为一个段(在打开新编写器以及编写器提交或关闭时创建新段). (2认同)