我有一个大索引,在索引过程中有一个错误。因此,为了避免需要几天的重新索引,我只想删除特定字段并重新索引。有什么建议吗?
dly7yett1#
如果您使用的是Solr4,则可以使用AtomicUpdate http://wiki.apache.org/solr/Atomic_Updates更轻松地删除字段。例如:
curl http://localhost:8983/solr/update?commit=true -H 'Content-type:application/json' --data-binary '[{"id": "630911fa-711a-3944-b1d2-cda6857f9827", "field_to_be_removed": {"set": null}}]'
yrefmtwq2#
如果存储了其余字段,即stored="true ",则可以执行此操作。如下所示,设置空值。
stored="true "
<add> <doc> <!-- your unique key field --> <field name="employeeId">05991</field> <!-- what ever field you want to delete --> <field name="skills" update="set" null="true" /> </doc> </add>
来源:https://wiki.apache.org/solr/UpdateXmlMessages
mu0hgdu03#
你不能。解决方案是获取文档,暂时存储在内存中,删除它,更新所需字段(删除、添加),然后将文档添加回索引。
oo7oh9g94#
可以按id删除索引文档。如果要通过删除字段来更改架构,则必须重新编制索引。
8zzbczxx5#
您可以使用delete命令和如下查询删除所有索引:
java -Ddata=args -Dcommit=yes -jar post.jar "<delete><query>*:*</query></delete>"
使用参数-Dcommit强制更新索引,因此,当您不需要时,请小心不要删除所有文档。
-Dcommit
t9eec4r06#
可以删除Solr中某个字段的索引值,但不能删除该字段。如果确实要在索引时删除特定字段,则应在模式中配置该字段。索引文档之前的xml文件。
r6vfmomb7#
对于solr 8.11.2,
curl 'http://localhost:8983/solr/solr/schema' -d '{"delete-field":{"name":"${field_name}"}}'
7条答案
按热度按时间dly7yett1#
如果您使用的是Solr4,则可以使用AtomicUpdate http://wiki.apache.org/solr/Atomic_Updates更轻松地删除字段。例如:
yrefmtwq2#
如果存储了其余字段,即
stored="true "
,则可以执行此操作。如下所示,设置空值。来源:https://wiki.apache.org/solr/UpdateXmlMessages
mu0hgdu03#
你不能。解决方案是获取文档,暂时存储在内存中,删除它,更新所需字段(删除、添加),然后将文档添加回索引。
oo7oh9g94#
可以按id删除索引文档。如果要通过删除字段来更改架构,则必须重新编制索引。
8zzbczxx5#
您可以使用delete命令和如下查询删除所有索引:
使用参数
-Dcommit
强制更新索引,因此,当您不需要时,请小心不要删除所有文档。t9eec4r06#
可以删除Solr中某个字段的索引值,但不能删除该字段。
如果确实要在索引时删除特定字段,则应在模式中配置该字段。索引文档之前的xml文件。
r6vfmomb7#
对于solr 8.11.2,