0

我有一个用例,我想使用 Camel 删除 solr 文档(按 id)。

我搜索了文档,但对删除操作的示例没有任何处理。

如果我必须使用 DELETE_BY_ID,我不清楚在哪里设置文档 ID 的值。它是在消息正文还是标题中?欣赏一个小例子。

另外,有没有办法批量删除。因为我有多个文档要从 solr 中删除。

谢谢。

4

2 回答 2

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 回答
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 回答