2011-01-26 74 views

回答

4

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

3

通過它的ID,您可以刪除索引文件。如果你想通過刪除一個字段來改變模式,那麼是的,你將不得不重新編制索引。

+0

1或只是避免經由FL參數輸出格式返回字段;) – Karussell 2011-01-27 21:01:13

1

您可以刪除所有使用命令刪除和索引這樣的查詢:

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

使用參數-Dcommit力更新索引,所以,要小心,當你不想不刪除所有文件。

+0

Solr中[鏈接]的文檔(http://lucene.apache.org/solr/tutorial.html)說明如何刪除一個文件,但在Solr中的常見問題解釋通過查詢[鏈接](http://wiki.apache.org/solr/FAQ#How_can_I_delete_all_documents_from_my_index.3F) – josegil 2011-11-29 11:59:00

7

如果您使用的是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}}]' 
+0

如何刪除某個領域的所有「ID」刪除?對於例如這會刪除ID爲630911fa-711a-3944-b1d2-cda6857f9827的某個字段。但我想要所有的ID。 – Uttam 2017-11-10 13:51:52

5

,如果你能做到這一點的字段其餘存儲即stored="true "。至於如下設置空值。

<add> <doc>

<field name="employeeId">05991</field> // your unique key field 

    <field name="skills" update="set" null="true" /> //what ever field you want to delete 

</doc> </add>

來源:https://wiki.apache.org/solr/UpdateXmlMessages

0

您可以刪除索引值w.r.t. Solr領域,但不是領域。

如果你真的要刪除特定字段建立索引時,那麼你應該索引文檔之前配置Schema.xml文件領域。

相關問題