term精确查询
@SpringBootTestpublic class MyTest{ //注入RestHighLevelClient对象 @Autowired private RestHighLevelClient restHighLevelClient; @Test public void test() throws IOException { //准备SearchRequest请求对象,并指定索引库名 SearchRequest searchRequest = new SearchRequest(索引库名); //准备TermQueryBuilder查询对象,并指定查询字段和查询数据 TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(字段名, 搜索词); //在SearchRequest请求对象中放入TermQueryBuilder查询对象 searchRequest.source().query(termQueryBuilder); //发送请求,得到响应对象 SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); //从响应对象中获取响应结果 SearchHits searchHits = searchResponse.getHits(); //获取文档的总条数 long total = searchHits.getTotalHits().value; //获取搜索结果数组 SearchHit[] hits = searchHits.getHits(); //创建文档集合,用于存放结果 List<文档类名> 集合对象名 = new ArrayList<>(); //遍历数组 for (SearchHit hit : hits) { //获取Json格式的文档内容 String json = hit.getSourceAsString(); //反序列化Json,这里需要引入fastjson的依赖 文档类名 文档对象名 = JSON.parseObject(json, 文档类名.class); //将结果放入集合 集合对象名.add(文档对象名); } }}
range范围查询
@SpringBootTestpublic class MyTest{ //注入RestHighLevelClient对象 @Autowired private RestHighLevelClient restHighLevelClient; @Test public void test() throws IOException { //准备SearchRequest请求对象,并指定索引库名 SearchRequest searchRequest = new SearchRequest(索引库名); //准备RangeQueryBuilder查询对象,并指定查询字段和范围数据 RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(字段名).gte(大于等于的值).lte(小于等于的值); //在SearchRequest请求对象中放入RangeQueryBuilder查询对象 searchRequest.source().query(rangeQueryBuilder); //发送请求,得到响应对象 SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); //从响应对象中获取响应结果 SearchHits searchHits = searchResponse.getHits(); //获取文档的总条数 long total = searchHits.getTotalHits().value; //获取搜索结果数组 SearchHit[] hits = searchHits.getHits(); //创建文档集合,用于存放结果 List<文档类名> 集合对象名 = new ArrayList<>(); //遍历数组 for (SearchHit hit : hits) { //获取Json格式的文档内容 String json = hit.getSourceAsString(); //反序列化Json,这里需要引入fastjson的依赖 文档类名 文档对象名 = JSON.parseObject(json, 文档类名.class); //将结果放入集合 集合对象名.add(文档对象名); } }}