SearchRequestBuilder經常使用方法說明elasticsearch
(1) setIndices(String... indices):上文中描述過,參數可爲一個或多個字符串,表示要進行檢索的index;
(2) setTypes(String... types):參數可爲一個或多個字符串,表示要進行檢索的type,當參數爲0個或者不調用此方法時,表示查詢全部的type;
setSearchType(SearchType searchType):執行檢索的類別,值爲org.elasticsearch.action.search.SearchType的元素,SearchType是一個枚舉類型的類,
其值以下所示:
QUERY_THEN_FETCH:查詢是針對全部的塊執行的,但返回的是足夠的信息,而不是文檔內容(Document)。結果會被排序和分級,基於此,只有相關的塊的文檔對象會被返回。因爲被取到的僅僅是這些,故而返回的hit的大小正好等於指定的size。這對於有許多塊的index來講是很便利的(返回結果不會有重複的,由於塊被分組了)
QUERY_AND_FETCH:最原始(也多是最快的)實現就是簡單的在全部相關的shard上執行檢索並返回結果。每一個shard返回必定尺寸的結果。因爲每一個shard已經返回了必定尺寸的hit,這種類型其實是返回多個shard的必定尺寸的結果給調用者。
DFS_QUERY_THEN_FETCH:與QUERY_THEN_FETCH相同,預期一個初始的散射相伴用來爲更準確的score計算分配了的term頻率。
DFS_QUERY_AND_FETCH:與QUERY_AND_FETCH相同,預期一個初始的散射相伴用來爲更準確的score計算分配了的term頻率。
SCAN:在執行了沒有進行任何排序的檢索時執行瀏覽。此時將會自動的開始滾動結果集。
COUNT:只計算結果的數量,也會執行facet。
(4) setSearchType(String searchType),與setSearchType(SearchType searchType)相似,區別在於其值爲字符串型的SearchType,值可爲dfs_query_then_fetch、dfsQueryThenFetch、dfs_query_and_fetch、dfsQueryAndFetch、query_then_fetch、queryThenFetch、query_and_fetch或queryAndFetch;
(5) setScroll(Scroll scroll)、setScroll(TimeValue keepAlive)和setScroll(String keepAlive),設置滾動,參數爲Scroll時,直接用new Scroll(TimeValue)構造一個Scroll,爲TimeValue或String時須要將TimeValue和String轉化爲Scroll;
(6) setTimeout(TimeValue timeout)和setTimeout(String timeout),設置搜索的超時時間;
(7) setQuery,設置查詢使用的Query;
(8) setFilter,設置過濾器;
(9) setMinScore,設置Score的最小數量;
(10) setFrom,從哪個Score開始查;
(11) setSize,須要查詢出多少條結果;fetch