elasticsearch将对象插入索引

我是Elasticsearch的新手,正在寻找使用Java API的帮助。我有一些领域对象,例如

@XmlRootElement

public class BasicActivity {

private String activityName;

private FullActivity activity;

// Getters and setters

}

我已经创建了连接到节点的传输客户端

Client client = new TransportClient()

.addTransportAddress(new InetSocketTransportAddress("192.168.0.198",9300));

我看到了

IndexResponse response = client.prepareIndex("twitter", "tweet", "1")

.setSource(jsonBuilder()

.startObject()

.field("user", "kimchy")

.field("postDate", new Date())

.field("message", "trying out Elastic Search")

.endObject()

)

.execute()

.actionGet();

但是要做到这一点,我必须将每个对象都转换成json,这虽然不是我理想的情况。

如果我对它的工作方式(架构上)有误解,请告诉我,我在这里学习!

欢呼声,罗布

回答:

我认为您在正确的轨道上。当您不习惯Java API时,有时很难得到它。我认为随着时间的推移它将变得更好。

您必须将对象转换为Json才能将它们发送到ElasticSearch集群。 Gson是可以为您做到这一点的众多流行图书馆之一。

您上面显示的代码将创建一个索引。现在要将文档添加到该索引,请运行类似的内容。

   Tweet tweet = new Tweet();

tweet.setId("1234");

tweet.setMessage("message");

IndexRequest indexRequest = new IndexRequest("twitter","tweet", tweet.getId());

indexRequest.source(new Gson().toJson(tweet));

IndexResponse response = client.index(indexRequest).actionGet();

签出BulkRequest一次为多个项目建立索引。一旦对象变得更加复杂,就需要创建Mappings。

我在《指南》中找到了很多很好的例子,但在ES Google

Group中通常会找到更详细的例子。

我也必须推荐Head前端。它向您显示现有索引和项目。

以上是 elasticsearch将对象插入索引 的全部内容, 来源链接: utcz.com/qa/405696.html

回到顶部