1.分頁
elasticsearch 默認情況下只返回top10的數據。而如果要查詢更多數據就需要修改分頁參數了。elasticsearch中通過修改from、size參數來控制要返回的分頁結果:
-
from:從第幾個文檔開始
-
size:總共查詢幾個文檔
類似於mysql中的limit ?, ?
基本的分頁
分頁的基本語法如下:
GET /hotel/_search { "query": { "match_all": {} }, "from": 0, // 分頁開始的位置,默認為0 "size": 10, // 期望獲取的文檔總數 "sort": [ {"price": "asc"} ] }
默認查詢上限(from + size)是10000
什么是高亮顯示呢?
我們在百度,京東搜索時,關鍵字會變成紅色,比較醒目,這叫高亮顯示:
高亮顯示的實現分為兩步:
-
1)給文檔中的所有關鍵字都添加一個標簽,例如
<em>
標簽 -
2)頁面給
<em>
標簽編寫CSS樣式
實現高亮
高亮的語法:
GET /hotel/_search { "query": { "match": { "FIELD": "TEXT" // 查詢條件,高亮一定要使用全文檢索查詢 } }, "highlight": { "fields": { // 指定要高亮的字段 "FIELD": { "pre_tags": "<em>", // 用來標記高亮字段的前置標簽 "post_tags": "</em>" // 用來標記高亮字段的后置標簽 } } } }
注意:
-
高亮是對關鍵字高亮,因此搜索條件必須帶有關鍵字,而不能是范圍這樣的查詢。
-
默認情況下,高亮的字段,必須與搜索指定的字段一致,否則無法高亮
-
如果要對非搜索字段高亮,則需要添加一個屬性:required_field_match=false
示例:
查詢的DSL是一個大的JSON對象,包含下列屬性:
-
query:查詢條件
-
from和size:分頁條件
-
sort:排序條件
-
highlight:高亮條件
示例: