Elasticsearch 使用java来进行crud操作
程序员文章站
2022-06-13 18:47:36
...
前面的文章描述了使用客户端的方式来进行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();
更多函数请查看源代码
上一篇: 新人求教header,该怎么处理