Camelを使用してsolrドキュメントを(IDで)削除したいユースケースがあります。
ドキュメントを検索しましたが、削除操作の例については何もわかりません。
DELETE_BY_ID を使用する必要がある場合、ドキュメント ID の値をどこに設定すればよいかわかりません。メッセージの本文またはヘッダーにありますか? 小さな例に感謝します。
また、一括削除する方法はありますか。Solrから削除するドキュメントが複数あるためです。
ありがとう。
Camelを使用してsolrドキュメントを(IDで)削除したいユースケースがあります。
ドキュメントを検索しましたが、削除操作の例については何もわかりません。
DELETE_BY_ID を使用する必要がある場合、ドキュメント ID の値をどこに設定すればよいかわかりません。メッセージの本文またはヘッダーにありますか? 小さな例に感謝します。
また、一括削除する方法はありますか。Solrから削除するドキュメントが複数あるためです。
ありがとう。
バッチ削除の場合は、DELETE_BY_QUERYを使用するか、リスト/スプリッターを使用してDELETE_BY_IDを複数回呼び出し、最後にコミットするなどの方法があります。
template.sendBody("direct:deleteListThenCommit", Arrays.asList("id1", "id2"));
...
from("direct:deleteListThenCommit")
.split(body())
.setHeader(SolrConstants.OPERATION, constant(SolrConstants.OPERATION_DELETE_BY_ID))
.to(SOLR_ROUTE_URI)
.end()
.setHeader(SolrConstants.OPERATION, constant(SolrConstants.OPERATION_COMMIT))
.to(SOLR_ROUTE_URI);
Camel のドキュメントが不十分な場合は、問題の Camel コンポーネントの単体テストを参照することをお勧めします。
ソースコードからこの削除テストを参照してください: https://svn.apache.org/repos/asf/camel/trunk/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrDeleteTest .java