我們以match_all查詢為例
**解讀:
第三步,利用client.search()傳送請求,得到響應
這裡關鍵的api有兩個,乙個是request.source()
,其中包含了查詢、排序、分頁、高亮等所有功能:
另乙個是querybuilders
,其中包含match、term、function_score、bool等各種查詢:
響應結果的解析:
}全文檢索的match和multi_match查詢與match_all的api基本一致。差別是查詢條件,也就是query的部分。
elasticsearch返回的結果是乙個json字串,結構包含:
因此,我們解析響應結果,就是逐層解析json字串,流程如下:
因此,j**a**上的差異主要是request.source().query()中的引數了。同樣是利用querybuilders提供的方法:
完整**如下:
@test精確查詢主要是兩者:void testmatch() throws ioexception
與之前的查詢相比,差異同樣在查詢條件,其它都一樣。
查詢條件構造的api如下:
布林查詢是用must、must_not、filter等方式組合其它查詢,**示例如下:
可以看到,api與其它查詢的差別同樣是在查詢條件的構建,querybuilders,結果解析等其他**完全不變。
完整**如下:
@test搜尋結果的排序和分頁是與query同級的引數,因此同樣是使用request.source()來設定。void testbool() throws ioexception
對應的api如下:
完整**示例:
@test高亮的**與之前**差異較大,有兩點:void testpageandsort() throws ioexception
高亮請求的構建api如下:
完整**如下:
@test高亮的結果與查詢的文件結果預設是分離的,並不在一起。void testhighlight() throws ioexception
因此解析高亮的**需要額外處理:
**解讀:
完整**如下:
private void handleresponse(searchresponse response)}system.out.println("hoteldoc = " + hoteldoc);}}
Mongodb查詢文件
mongodb查詢文件 db.blog.find 檢視集合下的所有文件 db.blog.find limit 50 可以限制查詢文件的數量 db.blog.find limit 1 db.blog.find pretty 格式化查詢文件加上 pretty id objectid 5438dd3fa7...
MongoDB 查詢文件
mongodb 查詢文件使用 find 方法。find 方法以非結構化的方式來顯示所有文件。mongodb 查詢資料的語法格式如下 db collection find query projection collection find query projection 如果你需要以易讀的方式來讀取資...
MongoDB 查詢文件
mongodb 查詢資料 db.collection.find query,projection 易讀的方式來讀取資料,可以使用 pretty 方法 db.col.find pretty 通過 by 和 title 鍵來查詢 db.col.find pretty 類似於 where 語句 where...