ElasticSearch修改和删除文档
修改文档方式一:使用prepareUpdate,prepareIndex两者选其一皆可
client.prepareUpdate("blog2","article",article.getId().toString()).setDoc(objectMapper.writeValueAsString(article)).get();
删除文档方式一:使用prepareDelete删除文档
client.prepareDelete("blog2","article",article.getId().toString()).get();
修改文档方式二:直接使用update
client.update(new UpdateRequest("blog2", "article", article.getId().toString()).doc(objectMapper.writeValueAsString(article))).get();
删除文档方式二:直接使用delete
client.delete(new DeleteRequest("blog2","article",article.getId().toString())).get();
修改和删除文档完整代码
//文档相关操作
@Test
public void demo6() throws Exception{
//创建连接搜索服务器对象
Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"),9300));
//描述json数据
/*
* {id:xxx,title:xxx,content:xxx}
*/
Article article = new Article();
article.setId(2);
article.setTitle("搜索工作其实也不枯燥");
article.setContent("我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的问题。");
ObjectMapper objectMapper = new ObjectMapper();
//建立文档
client.prepareIndex("blog2","article",article.getId().toString()).setSource(objectMapper.writeValueAsString(article)).get();
//修改文档方式一
client.prepareUpdate("blog2","article",article.getId().toString()).setDoc(objectMapper.writeValueAsString(article)).get();
//删除文档方式一
//client.prepareDelete("blog2","article",article.getId().toString());
//修改文档方式二
client.update(new UpdateRequest("blog2", "article", article.getId().toString()).doc(objectMapper.writeValueAsString(article))).get();
//删除文档方式二
//client.delete(new DeleteRequest("blog2","article",article.getId().toString())).get();
//关闭连接
client.close();
}