一 : 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 的对象设置到

04-14 06:38