elasticsearch将对象插入索引
我是Elasticsearch的新手,正在寻找使用Java API的帮助。我有一些领域对象,例如
@XmlRootElementpublic 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