2011-01-26 27 views

答えて

4

できません。解決策は、ドキュメントを取得し、一時的にメモリに格納し、削除し、必要なフィールドを更新(削除、追加)し、ドキュメントをインデックスに戻すことです。

3

インデックス付きドキュメントは、そのIDで削除できます。フィールドを削除してスキーマを変更する場合は、再作成する必要があります。

+0

+1またはflパラメータで出力形式のフィールドを返さないようにする; – Karussell

1

あなたが削除して、このようなクエリコマンドを使用して、すべてのインデックスを削除することができます

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

インデックスを更新するために、引数-Dcommit力を使用して、そう、あなたはいけない時にすべての文書を削除することないように注意してください。

+0

solr [link](http://lucene.apache.org/solr/tutorial.html)のドキュメントで、削除方法を説明しています1つのドキュメントですが、solrのFAQで質問による削除の説明[リンク](http://wiki.apache.org/solr/FAQ#How_can_I_delete_all_documents_from_my_index.3F) – josegil

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

5

分野のあなたの残りの部分はstored="true "の.asがnull値を設定することにより、以下のすなわちを格納しています。

<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ファイルにフィールドを設定してから、ドキュメントをインデックス登録する必要があります。

関連する問題