触发所有待处理文档的 SOLR 提交的最简单方法(URL?)?
Posted
技术标签:
【中文标题】触发所有待处理文档的 SOLR 提交的最简单方法(URL?)?【英文标题】:Most simple way (URL?) to trigger SOLR commit of all pending docs? 【发布时间】:2011-12-10 13:35:11 【问题描述】:使 SOLR 安装提交所有待处理文档的最简单方法是什么?
(在管理界面中没有明显的方法。在页面http://wiki.apache.org/solr/SolrOperationsTools 上提到了一个名为“提交”的脚本——但没有提示它在哪里。“提交”显然是一个可以添加到任何更新的选项POST,但我找不到对仅用于提交的单个 URL 的任何引用。)
【问题讨论】:
【参考方案1】:这适用于 SOLR 版本
试试[solr url]/update?commit=true
例如,对于 SOLR 示例默认的 URL,来自同一台机器,http://localhost:8983/solr/update?commit=true
应该这样做。
对于 SOLR 版本 >= 5.0http://localhost:8983/solr/[collection_name]/update?commit=true
【讨论】:
是只提交更新语句还是所有待处理的语句? 这是一个独立的请求。提交所有未决的内容。测试一下。 谢谢,我就知道一定要这么简单! 澄清一下,不可能只提交待处理更新的子集。当您向 Solr 提交提交时,它将始终写入所有“添加”和“删除”。 这从 SOLR 5.X 开始不再起作用,需要集合名称。 localhost:8080/solr/collection_name/update?commit=true【参考方案2】:由于 Solr 5 需要在 url 中添加集合名称,所以现在正确的答案是:
http://localhost:8983/solr/collection_name/update?commit=true
在以前的版本中,可以有一个默认集合(从示例中通常是 collection1),并且缩短的版本是有效的:
http://localhost:8983/solr/update?commit=true
仍然可以像第一种情况那样命名集合。
【讨论】:
【参考方案3】:我会说“正确”答案中缺少某些内容 - URL 应包含集合名称,例如:http://localhost:8983/solr/mycollection/update?commit=true
【讨论】:
【参考方案4】:我知道这是一个旧线程,但只是说还有一种方法可以通过管理界面执行此操作。
点击:
-> 左侧菜单中的数据导入
-> 然后勾选提交复选框
-> 然后执行
您将看到如下消息: “索引已完成。添加/更新:1 个文档。删除 0 个文档。(持续时间:01 秒)”
【讨论】:
以上是关于触发所有待处理文档的 SOLR 提交的最简单方法(URL?)?的主要内容,如果未能解决你的问题,请参考以下文章
在 PHP 中处理多个(未)选中复选框的最简单和最干净的方法