0

Camelを使用してsolrドキュメントを(IDで)削除したいユースケースがあります。

ドキュメントを検索しましたが、削除操作の例については何もわかりません。

DELETE_BY_ID を使用する必要がある場合、ドキュメント ID の値をどこに設定すればよいかわかりません。メッセージの本文またはヘッダーにありますか? 小さな例に感謝します。

また、一括削除する方法はありますか。Solrから削除するドキュメントが複数あるためです。

ありがとう。

4

2 に答える 2

0

バッチ削除の場合は、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);
于 2013-03-04T16:25:39.610 に答える
0

Camel のドキュメントが不十分な場合は、問題の Camel コンポーネントの単体テストを参照することをお勧めします。

ソースコードからこの削除テストを参照してください: https://svn.apache.org/repos/asf/camel/trunk/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrDeleteTest .java

于 2013-03-04T14:23:34.000 に答える