Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheCalmel ElasticSearch删除操作_Java_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Apache Camel - Fatal编程技术网 elasticsearch,apache-camel,Java,elasticsearch,Apache Camel" /> elasticsearch,apache-camel,Java,elasticsearch,Apache Camel" />

Java ApacheCalmel 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

我正在使用ApacheCamel Elasticsearch 2,我想删除一条记录

我搜索了文档,但是我没有得到任何关于删除操作的示例,我能够用下面的代码在ElasticSearch中保存一条记录

保存操作:

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的人所投的票会被记录下来,但不会改变公开显示的帖子分数。”我就这么做了。非常感谢。