一 : 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");
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 的對象設置到