欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elasticsearch 使用java来进行crud操作

程序员文章站 2022-06-13 18:45:22
...

前面的文章描述了使用客户端的方式来进行crud的操作,但在项目中还是要以程序的方式来执行这些操作的,简单介绍一下常用的操作吧。

 

1、读取文档

GetResponse response = client.prepareGet("webapp", null, "1")
		.setFields("title", "content", "url", "view", "data")
		.execute().get();
其中webapp为索引名称,至于类型名称非必填的可不设置所以此处我设置为null,1则为文档ID,
setFields中的值即为查询后需要返回的字段信息。

------------------------------------------

SearchRequestBuilder builder = client.prepareSearch("indexName");
//此处根据业务需求建立各种查询
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
builder.setQuery(queryBuilder);
SearchResponse res = builder.execute().get();

 

2、索引文档

BulkRequestBuilder bulk = client.prepareBulk();
for (;;) {  //批量索引
	IndexRequestBuilder builder = client.prepareIndex(index, type);
	builder.setSource(jsonData);
	bulk.add(builder);
}
BulkResponse res = bulk.execute().actionGet();

 

3、更新文档(也可向索引文档一样进行批量操作,方式一致)

UpdateRequestBuilder builder = client.prepareUpdate(index, type, id);
UpdateResponse response = builder.setDoc(jsonData).execute().actionGet();

 

4、删除文档

IndicesOptions indicesOptions = IndicesOptions.fromOptions(true, true,
				                           true, false);
DeleteByQueryRequestBuilder builder = DeleteByQueryAction.INSTANCE
				      .newRequestBuilder(client);
builder.setIndicesOptions(indicesOptions);

if (index != null) builder.setIndices(index);
if (types != null) builder.setTypes(types);
if (query == null) query = QueryBuilders.matchAllQuery();				
builder.setQuery(query);
DeleteByQueryResponse res = builder.get();

 

   更多函数请查看源代码

 

 

相关标签: elasticsearch crud