使用Camel进行Solr删除操作

时间:2013-03-04 11:04:25

标签: solr apache-camel

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

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

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

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

感谢。

2 个答案:

答案 0 :(得分:0)

当Camel文档不够用时,一个好主意是查看相关Camel组件的单元测试。

从源代码中查看此删除测试:https://svn.apache.org/repos/asf/camel/trunk/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrDeleteTest.java

答案 1 :(得分:0)

对于批量删除,您可以使用DELETE_BY_QUERY或使用List / splitter多次调用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);