ElasticSearch 攻略(四)簡易搜尋

2021-09-22 13:24:19 字數 1954 閱讀 2412

之前獲取 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攻略超詳細攻略 重慶旅遊攻略 重慶超詳細攻略

去重慶旅行,人回來了心卻留在重慶,拍拍拍不完的重慶美景,吃吃吃不完的重慶美食,這個城市確實辣得安逸,巴適得很 去重慶建議的遊玩路線 解放碑 八一好吃街 皇冠大扶梯 穿越居民樓輕軌 枇杷園食為鮮火鍋 解放碑 重慶的晚上是比白天好看很多的,解放碑晚上的景色也比白天好看,也能拍到後面的亮燈大廈,那個重慶你...