簡體   English   中英

您可以從 Solr 索引中的文檔中刪除字段嗎?

[英]Can you delete a field from a document in Solr index?

我有一個很大的索引,在索引過程中出現了錯誤。 因此,為了避免需要幾天的重新索引,我想簡單地刪除特定字段並重新索引。 有什么建議嗎?

如果您使用 Solr 4,則可以使用 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}}]'

如果您的其余字段被存儲,您可以執行此操作,即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

你不能。 解決方案是獲取文檔,臨時存儲在內存中,刪除它,更新所需的字段(刪除,添加),然后將文檔添加回索引。

您可以通過它的 id 刪除索引文檔。 如果您想通過刪除字段來更改架構,那么是的,您必須重新索引。

您可以使用命令 delete 和如下查詢刪除所有索引:

java -Ddata=args -Dcommit=yes -jar post.jar "<delete><query>*:*</query></delete>"

使用參數-Dcommit強制更新索引,因此,請注意不要在不需要時刪除所有文檔。

您可以刪除 Solr 中某個字段的索引值,但不能刪除該字段。

如果您確實想在索引時刪除特定字段,那么您應該在索引文檔之前在 schema.xml 文件中配置該字段。

使用 solr 8.11.2,

curl 'http://localhost:8983/solr/solr/schema' -d '{"delete-field":{"name":"${field_name}"}}'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM