全文搜索是Elasticsearch的核心特性之一,Java Elasticsearch全文搜索查询主要由MatchQueryBuilder这个构造器配置。
创建MatchQueryBuilder
有两种方式创建MatchQueryBuilder
- 直接实例化MatchQueryBuilder
- 通过QueryBuilders工具创建
方式1
直接实例化MatchQueryBuilder对象。
构造方法参数说明:
- 参数1 - 字段名
- 参数2 - 匹配关键词
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("title", "梯子教程");
方式2
通过QueryBuilders工具创建
// 可以直接赋值给QueryBuilder接口定义的对象
QueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("title", "梯子教程");
创建SearchRequest
Java 所有的ES查询请求都是通过SearchRequest对象进行设置,因此需要实例化SearchRequest对象,设置query参数。
SearchRequest searchRequest = new SearchRequest();
// 通过SearchSourceBuilder构建搜索参数
SearchSourceBuilder builder = new SearchSourceBuilder();
// 设置query参数,绑定前面创建的Query对象
builder.query(matchQueryBuilder);
// 设置SearchRequest搜索参数
searchRequest.source(builder);
执行请求
// 执行ES请求
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
提示: 如何处理查询结果,请参考 Java ES查询基本写法