查询全部

  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. //准备MatchAllQueryBuilder查询对象
  11. MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
  12. //在SearchRequest请求对象中放入MatchAllQueryBuilder查询对象
  13. searchRequest.source().query(matchAllQueryBuilder);
  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. }

单字段查询

  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. //准备MatchQueryBuilder查询对象,并指定查询字段和查询数据
  11. MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(字段名, 搜索词);
  12. //在SearchRequest请求对象中放入MatchQueryBuilder查询对象
  13. searchRequest.source().query(matchQueryBuilder);
  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. }

多字段查询

  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. //准备MultiMatchQueryBuilder查询对象,并指定查询数据和多个查询字段
  11. MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(搜索词, 字段名1, 字段名2 , ...);
  12. //在SearchRequest请求对象中放入MultiMatchQueryBuilder查询对象
  13. searchRequest.source().query(multiMatchQueryBuilder);
  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. }