一 : SearchRequest用于任何与搜索文档,聚合和建议有关的操作,并且还提供了对生成的文档进行高亮显示的方法。 在最基本的形式中,我们可以向请求添加一个查询:
1:添加一个SearchRequest 的对象用于发送请求
2:添加一个 SearchSourceBuilder 对象,用于添加搜索的参数(例如,分页信息页码,页容量等)
3:将match_all添加到 searchSourceBuilder中
SearchRequest searchRequest = new SearchRequest();
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
二:可选参数:
1 SearchRequest 中可以选择的设置参数:
1.1 添加检索的索引
1.2 添加检索的类型
SearchRequest searchRequest = new SearchRequest("posts");
searchRequest.types("doc");
1.3 SearchRequest 的其他的一些可以设置的参数:
1.3.1 设置路由的参数(?)
searchRequest.routing("routing");
1.3.2 SearchRequest 设置指数参数打的可选指数 ,控制不可用索引如何解析以及如何扩展通配符表达式(?)
searchRequest.indicesOptions(IndicesOptions.lenientExpandOpen());
1.3.3 使用首选项参数,例如执行搜索以选择本地碎片。缺省值是在整个分片中随机化。(?)
searchRequest.preference("_local");
2 SearchSourceBuilder的检索参数的设置
<1>使用默认选项创建一个SearchSourceBuilder
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
<2> 设置查询。 可以是任何类型的QueryBuilder
sourceBuilder.query(QueryBuilders.termQuery("user", "kimchy"));
<3> 在指定索引下,检索开始的位置(从指定的记录条数的位置开始查询) 默认是0
sourceBuilder.from(0);
<4> 检索记录数的总数
sourceBuilder.size(5);
<5> 设置一个可选超时,控制允许搜索的时间。
sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
三 :将 SearchSourceBuilder 的对象设置到