gpt4 book ai didi

java - elasticsearch 将对象插入索引

转载 作者:太空狗 更新时间:2023-10-29 22:38:45 41 4
gpt4 key购买 nike

我是 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));

是否有简单的方法可以将我的对象直接插入到 elasticsearch 中?

我看到了

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 .

我在 Guide 中找到了很好的例子, 但通常在 ES Google Group 中有更详细的示例.

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

关于java - elasticsearch 将对象插入索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8154902/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com