Rob*_*Rob 17 java elasticsearch
我是elasticsearch的新手,并且正在寻找使用Java API的一些帮助.我有一些域对象例如
@XmlRootElement
public class BasicActivity {
private String activityName;
private FullActivity activity;
// Getters and setters
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个连接到节点的传输客户端
Client client = new TransportClient()
.addTransportAddress(new InetSocketTransportAddress("192.168.0.198",9300));
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法将我的对象直接插入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();
Run Code Online (Sandbox Code Playgroud)
但要做到这一点,我必须将每个对象转换为json,尽管这可能不是我理想的情况.
如果我对它的工作方式(架构上)有误解,请告诉我,我在这里学习!
欢呼,罗布
And*_*ndy 30
我认为你走在正确的轨道上.当您不习惯Java API时,很难获得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();
Run Code Online (Sandbox Code Playgroud)
查看BulkRequest一次索引多个项目.一旦您的对象变得更复杂,您将需要创建映射.
我在" 指南"中找到了很好的例子,但通常在ES Google Group中有更详细的例子.
我也要推荐Head前端.它显示了现有的索引和项目.
| 归档时间: |
|
| 查看次数: |
31356 次 |
| 最近记录: |