之前獲取 es 是單條「記錄」,例如 getresponse response = client.prepareget("twitter", "tweet", "1").get(); 如果獲取記錄列表則要通過「搜尋」。最簡單的 es 搜尋是:
import org.elasticsearch.action.search.searchresponse;
import org.elasticsearch.action.search.searchtype;
import org.elasticsearch.index.query.querybuilders.*;
searchresponse response = client.preparesearch().execute().actionget();// 獲取全部
這樣太簡單了,沒有任何條件的搜尋,不足以反映 es 的強大。構建乙個複雜的搜尋,我們需要 searchrequestbuilder 的幫忙,由它的物件來執行搜尋。
searchrequestbuilder searchrequestbuilder = client.preparesearch("index1", "index2");
searchrequestbuilder .settypes("type1", "type2"); // es 的搜尋 search 不但聯合多個庫(index1、index2),而是可以是跨型別的(即跨表的 type1、type2)。
//設定查詢型別
searchrequestbuilder.setsearchtype(searchtype.dfs_query_then_fetch);
//設定分頁資訊
searchrequestbuilder.setfrom(0).setsize(10);
// 按照時間降序
searchrequestbuilder.addsort("crawldate", sortorder.desc);
// 設定是否按查詢匹配度排序
searchrequestbuilder.setexplain(true);
……
searchrequestbuilder.setsearchtype,設定搜尋型別,主要的搜尋型別有:
繼續定義 searchrequestbuilder,
searchrequestbuilder.setquery(querybuilders.termquery("multi", "test")) // query 匹配關鍵字
searchrequestbuilder.setpostfilter(querybuilders.rangequery("age").from(12).to(18)) // filter 表示範圍
指定查詢條件。es 內建豐富的查詢條件,我們後面再詳述。
最後執行搜尋查詢,
//執行查詢
searchresponse response = searchrequestbuilder.execute().actionget();
searchhits searchhits = response.gethits();
system.out.println("總數:"+searchhits.gettotalhits());
searchhit hits = searchhits.gethits();
for (searchhit hit : hits)
如果換作 http api,可以通過 _search action 傳人 q= 引數進行 querystring 搜尋:
get /megacorp/employee/_search?q=last_name:smith
// 另外的寫法,效果等價
get /megacorp/employee/_search
}}
At命令攻略
at命令攻略 紅色表示注意事項 at說明 at 命令要求您是本地 administrators 組的成員。at 命令在執行命令前也不會自動載入命令解釋程式 cmd。如果正在執行可執行檔案 exe 則在命令開頭必須專門載入 cmd.exe,例如 cmd c dir c test.out。檢視已計畫的命...
雙選會攻略
到12月雙選會開始漸止,終於能坐下來喘口氣。回想過去的幾個月,有收穫但也走了不少 彎路。想想不甘心,要是早點有攻略就好了。好吧,那我來寫這個攻略。1 參加什麼樣的雙選會 求職之前學長學姐說多參加雙選會看看,就嘩啦啦的去參加了。參加的第一場雙選會記得 是省就業指導中心舉辦的,場面那個叫大,黑壓壓的全是...
sob攻略超詳細攻略 重慶旅遊攻略 重慶超詳細攻略
去重慶旅行,人回來了心卻留在重慶,拍拍拍不完的重慶美景,吃吃吃不完的重慶美食,這個城市確實辣得安逸,巴適得很 去重慶建議的遊玩路線 解放碑 八一好吃街 皇冠大扶梯 穿越居民樓輕軌 枇杷園食為鮮火鍋 解放碑 重慶的晚上是比白天好看很多的,解放碑晚上的景色也比白天好看,也能拍到後面的亮燈大廈,那個重慶你...