Можем ли мы передать Java Pojo в API индекса Elasticsearch с помощью нового клиента REST

Я просматриваю новый клиент REST Java от Elasticsearch и ищу различные способы индексирования документа (здесь https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.3/java-rest-high-document-index.html)

Есть ли возможность передать свой Java Pojo в индексирование? как после

IndexRequest request = new IndexRequest("posts"); 
request.id("1"); 
request.source(new User("1", "Foo", 22, new Date()));
IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT);

person karthikdivi    schedule 14.08.2019    source источник


Ответы (1)


Нет, вы не можете передать POJO напрямую методу IndexRequest.source(), вам нужно либо передать:

  1. a строка JSON
  2. a Карта
  3. a сериализованное POJO Джексона
  4. объект, созданный с помощью предоставленный помощник

В вашем случае, я думаю, третий вариант может иметь больше смысла, поскольку у вас есть POJO под рукой.

person Val    schedule 14.08.2019
comment
То же самое и с транспортным клиентом? - person karthikdivi; 14.08.2019
comment
Да такое же поведение - person Val; 14.08.2019