elasticearch通过JAVA API直接使用DSL JSON进行查询

具体代码示例如下:

		StringBuffer dsl = new StringBuffer();
		dsl.append("{\"bool\": {");
		dsl.append("      \"must\": [");
		dsl.append("        {");
		dsl.append("          \"term\": {");
		dsl.append("            \"mdid.keyword\": {");
		dsl.append("              \"value\": \"2fa9d41e1af460e0d47ce36ca8a98737\"");
		dsl.append("            }");
		dsl.append("          }");
		dsl.append("        }");
		dsl.append("      ]");
		dsl.append("    }");
		dsl.append("}");
		WrapperQueryBuilder wqb = QueryBuilders.wrapperQuery(dsl.toString());
		SearchResponse searchResponse = client.prepareSearch(basicsysCodeManager.getYjzxYjxxIndex())
		.setTypes(basicsysCodeManager.getYjzxYjxxType()).setQuery(wqb).setSize(10).get();
		SearchHit[] hits = searchResponse.getHits().getHits();
		for(SearchHit hit : hits){
			String content = hit.getSourceAsString();
			System.out.println(content);
		}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java使用DSL操作ES可以通过Elasticsearch Java High Level REST Client实现。以下是一个简单的示例代码: ```java RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http"))); // 查询文档 SearchRequest searchRequest = new SearchRequest("index"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchQuery("field", "value")); searchRequest.source(searchSourceBuilder); SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); // 添加文档 IndexRequest indexRequest = new IndexRequest("index"); Map<String, Object> jsonMap = new HashMap<>(); jsonMap.put("field1", "value1"); jsonMap.put("field2", "value2"); indexRequest.source(jsonMap); IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); // 更新文档 UpdateRequest updateRequest = new UpdateRequest("index", "id"); Map<String, Object> jsonMap = new HashMap<>(); jsonMap.put("field1", "new value1"); jsonMap.put("field2", "new value2"); updateRequest.doc(jsonMap); UpdateResponse updateResponse = client.update(updateRequest, RequestOptions.DEFAULT); // 删除文档 DeleteRequest deleteRequest = new DeleteRequest("index", "id"); DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT); client.close(); // 关闭连接 ``` 在使用DSL操作ES时,需要创建一个`RestHighLevelClient`实例,并且在操作完毕后需要关闭连接。以上示例代码演示了如何使用DSL操作ES进行查询、添加、更新和删除文档。需要注意的是,具体的查询条件和操作方式需要根据实际需求进行调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值