Java ApacheCalmel ElasticSearch删除操作
我正在使用ApacheCamel Elasticsearch 2,我想删除一条记录 我搜索了文档,但是我没有得到任何关于删除操作的示例,我能够用下面的代码在ElasticSearch中保存一条记录 保存操作:Java ApacheCalmel ElasticSearch删除操作,java,elasticsearch,apache-camel,Java,elasticsearch,Apache Camel,我正在使用ApacheCamel Elasticsearch 2,我想删除一条记录 我搜索了文档,但是我没有得到任何关于删除操作的示例,我能够用下面的代码在ElasticSearch中保存一条记录 保存操作: from("direct:index") .process(fooSaveProcessor) .to("elasticsearch://local?operation=INDEX&indexName=twitter&indexType=tweet"); from("di
from("direct:index")
.process(fooSaveProcessor)
.to("elasticsearch://local?operation=INDEX&indexName=twitter&indexType=tweet");
from("direct:index")
.process(fooDeleteProcessor)
.to("elasticsearch://local?operation=DELETE&indexName=twitter&indexType=tweet");
在FooSaveProcessor.java中
public class FooSaveProcessor implements Processor {
@Override
public void process(Exchange exchange) {
Foo foo = exchange.getIn().getBody(Foo.class);
exchange.getIn().setHeader(ElasticsearchConstants.PARAM_INDEX_ID, foo.id);
String jsonStr = convertToJSON(foo);
log.info("Input to Elastic " + jsonStr);
exchange.getIn().setBody(jsonStr);
}
}
public class FooDeleteProcessor implements Processor {
@Override
public void process(Exchange exchange) {
Foo foo = exchange.getIn().getBody(Foo.class);
exchange.getIn().setHeader(ElasticsearchConstants.PARAM_INDEX_ID, foo.id);
}
}
但我无法使用以下代码执行删除操作
删除操作:
from("direct:index")
.process(fooSaveProcessor)
.to("elasticsearch://local?operation=INDEX&indexName=twitter&indexType=tweet");
from("direct:index")
.process(fooDeleteProcessor)
.to("elasticsearch://local?operation=DELETE&indexName=twitter&indexType=tweet");
在foodeleprocessor.java中
public class FooSaveProcessor implements Processor {
@Override
public void process(Exchange exchange) {
Foo foo = exchange.getIn().getBody(Foo.class);
exchange.getIn().setHeader(ElasticsearchConstants.PARAM_INDEX_ID, foo.id);
String jsonStr = convertToJSON(foo);
log.info("Input to Elastic " + jsonStr);
exchange.getIn().setBody(jsonStr);
}
}
public class FooDeleteProcessor implements Processor {
@Override
public void process(Exchange exchange) {
Foo foo = exchange.getIn().getBody(Foo.class);
exchange.getIn().setHeader(ElasticsearchConstants.PARAM_INDEX_ID, foo.id);
}
}
POM:
org.apache.camel
驼色天青起子
org.apache.camel
驼形弹性垫起动器
有人能帮我完成吗?根据Camel ElasticSearch组件,为了使删除操作正常工作,Exchange的主体需要是要删除的索引id。因此,您应该将处理器更改为以下类型:
@Override
public void process(Exchange exchange) {
Foo foo = exchange.getIn().getBody(Foo.class);
exchange.getOut().setBody(foo.id);
}
根据Camel ElasticSearch组件,为了使删除操作正常工作,Exchange主体需要是要删除的索引id。因此,您应该将处理器更改为以下类型:
@Override
public void process(Exchange exchange) {
Foo foo = exchange.getIn().getBody(Foo.class);
exchange.getOut().setBody(foo.id);
}
很抱歉,我没能早点答复。我多次试图接受你的回答,但都没有成功。我一直收到这样一条信息:“谢谢你的反馈!那些声誉低于15的人所投的票会被记录下来,但不会改变公开显示的帖子分数。”我就这么做了。非常感谢。很抱歉,我没能早点答复。我多次试图接受你的回答,但都没有成功。我一直收到这样一条信息:“谢谢你的反馈!那些声誉低于15的人所投的票会被记录下来,但不会改变公开显示的帖子分数。”我就这么做了。非常感谢。