- 將查詢語句通過HTTP Request Body 傳送給Elasticsearch
- Query DSL
POST /movies,404_idx/_search?ignore_unavailable=true
{
"profile":true,
"query":{
"match_all" : {} // 查詢所有的文件
}
}
- From 從 0 開始 預設返回10個結果
- 獲取靠後的翻頁,成本較高
POST /kibana_sample_data_ecommerce/_search
{
"from":10,
"size":20
"query":{
"match_all":{}
}
- 最好在“數字型”與“日期型”欄位上排序
- 因為對於多值型別或分析過的欄位排序,系統會選一個值,無法得知該值
GET kinaba_sample_data_ecommerce/_search
{
"sort":[{"order_date":"desc}],
"from":10,
"size":5,
"query":{
"match_all":{}
}
- 如果_source 沒有儲存,那就只返回匹配的文件後設資料
- _source 支援使用萬用字元
- _source["name ","desc"]
- 能算出新的欄位
- 用例:訂單中有不同的匯率,需要結合匯率對訂單價格進行排序
#指令碼欄位
GET kibana_sample_data_ecommerce/_search
{
"script_fields": {
"new_field": {
"script": {
"lang": "painless",
"source": "doc['order_date'].value+'hello'"
}
}
},
"query": {
"match_all": {}
}
}
POST movies/_search
{
"query": {
"match": {
"title": "Last Christmas" // 相當於 OR 可出現其中1個
}
}
}
POST movies/_search
{
"query": {
"match": {
"title": {
"query": "Last Christmas",
"operator": "AND"
}
}
}
}
POST movies/_search
{
"query": {
"match_phrase": {
"title":{
"query": "one love"
"slop":1 //中間可以一個其他詞
}
}
}
}