term精确查询

  1. @SpringBootTest
  2. public class MyTest{
  3. //注入RestHighLevelClient对象
  4. @Autowired
  5. private RestHighLevelClient restHighLevelClient;
  6. @Test
  7. public void test() throws IOException {
  8. //准备SearchRequest请求对象,并指定索引库名
  9. SearchRequest searchRequest = new SearchRequest(索引库名);
  10. //准备TermQueryBuilder查询对象,并指定查询字段和查询数据
  11. TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(字段名, 搜索词);
  12. //在SearchRequest请求对象中放入TermQueryBuilder查询对象
  13. searchRequest.source().query(termQueryBuilder);
  14. //发送请求,得到响应对象
  15. SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
  16. //从响应对象中获取响应结果
  17. SearchHits searchHits = searchResponse.getHits();
  18. //获取文档的总条数
  19. long total = searchHits.getTotalHits().value;
  20. //获取搜索结果数组
  21. SearchHit[] hits = searchHits.getHits();
  22. //创建文档集合,用于存放结果
  23. List<文档类名> 集合对象名 = new ArrayList<>();
  24. //遍历数组
  25. for (SearchHit hit : hits) {
  26. //获取Json格式的文档内容
  27. String json = hit.getSourceAsString();
  28. //反序列化Json,这里需要引入fastjson的依赖
  29. 文档类名 文档对象名 = JSON.parseObject(json, 文档类名.class);
  30. //将结果放入集合
  31. 集合对象名.add(文档对象名);
  32. }
  33. }
  34. }

range范围查询

  1. @SpringBootTest
  2. public class MyTest{
  3. //注入RestHighLevelClient对象
  4. @Autowired
  5. private RestHighLevelClient restHighLevelClient;
  6. @Test
  7. public void test() throws IOException {
  8. //准备SearchRequest请求对象,并指定索引库名
  9. SearchRequest searchRequest = new SearchRequest(索引库名);
  10. //准备RangeQueryBuilder查询对象,并指定查询字段和范围数据
  11. RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(字段名).gte(大于等于的值).lte(小于等于的值);
  12. //在SearchRequest请求对象中放入RangeQueryBuilder查询对象
  13. searchRequest.source().query(rangeQueryBuilder);
  14. //发送请求,得到响应对象
  15. SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
  16. //从响应对象中获取响应结果
  17. SearchHits searchHits = searchResponse.getHits();
  18. //获取文档的总条数
  19. long total = searchHits.getTotalHits().value;
  20. //获取搜索结果数组
  21. SearchHit[] hits = searchHits.getHits();
  22. //创建文档集合,用于存放结果
  23. List<文档类名> 集合对象名 = new ArrayList<>();
  24. //遍历数组
  25. for (SearchHit hit : hits) {
  26. //获取Json格式的文档内容
  27. String json = hit.getSourceAsString();
  28. //反序列化Json,这里需要引入fastjson的依赖
  29. 文档类名 文档对象名 = JSON.parseObject(json, 文档类名.class);
  30. //将结果放入集合
  31. 集合对象名.add(文档对象名);
  32. }
  33. }
  34. }