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:高亮條件
示例:

