Apache Camel ElasticSearch Операция удаления - PullRequest
1 голос
/ 29 апреля 2019

Я использую Apache Camel Elasticsearch 2, и я хотел бы удалить запись.

Я искал документацию, но не получаю никаких описаний примеров операции удаления, я могу сохранитьхотя запись в ElasticSearch с кодом ниже.

Операция сохранения:

from("direct:index")
.process(fooSaveProcessor)
.to("elasticsearch://local?operation=INDEX&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);
    }

}

Но я не могу выполнить операцию удаленияс кодом ниже

Операция удаления:

from("direct:index")
.process(fooDeleteProcessor)
.to("elasticsearch://local?operation=DELETE&indexName=twitter&indexType=tweet");

В fooDeleteProcessor.java

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:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-azure-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-elasticsearch-rest-starter</artifactId>
</dependency>

Может кто-нибудь, пожалуйста, помогите мневыполнить это?

1 Ответ

0 голосов
/ 29 апреля 2019

Согласно компоненту Camel ElasticSearch документация , чтобы операция DELETE работала, тело Exchange должно быть идентификатором индекса для удаления. Таким образом, вы должны изменить свой процессор на что-то вроде этого:

@Override
public void process(Exchange exchange) {
    Foo foo = exchange.getIn().getBody(Foo.class);
    exchange.getOut().setBody(foo.id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...