在前面兩篇文章中分別講了elastic search 6.8.0的安裝和kibana 6.8.0的安裝,本文將介紹如何使用dev tools來操作es。
首先啟動es,再啟動kibana,進入dev tools。
建立index
#建立index
put /dangdang
刪除index
#刪除index
delete /dangdang
刪除所有index
#刪除所有index
delete /*
將會導致kibana無法使用。需要重啟kibana,慎用。
查詢所有索引
# 查詢所有的索引
get /_cat/indices?v
建立type
#建立type
put /dangdang
, "name":,
"age":,
"address":,
"content":}}
}}
note:7.0*版本後,乙個index內只能建立乙個type,語法上有些變化。故圖上有些紅色字提示。
建立document,指定了id
#建立document
post /dangdang/emp/1
建立document時,不指定id,
根據id查詢document
post /dangdang/emp
修改document,其他字段不變
#修改
post /dangdang/emp/j0nqbnmbnx_ubtrok5fl/_update
}
note:修改時,如果不帶_update,會將剩餘字段覆蓋,只留下修改的這個字段。
批量新增document
put /dangdang/emp/_bulk}}
}
批量新增修改刪除
post /dangdang/emp/_bulk }
}}}
note:批量時不會因為乙個失敗而全部失敗,而是繼續執行後續操作,批量在返回時按照執行的順序開始返回
es官方提供了兩中檢索方式:
1)通過 url 引數進行搜尋,
2)通過 dsl(domain specified language) 進行搜尋。
官方更推薦使用第二種方式第二種方式是基於傳遞json作為請求體(request body)格式與es進行互動,這種方式更強大,更簡潔、
先準備測試資料:
delete /dangdang
put /dagndang
, "age":,
"content":,
"address":}}
}}put /danggdang/emp/_bulk }
}}}}
}
url檢索
查詢所有
get /dangdang/emp/_search?q=*
_search 搜尋的api
q=* 匹配所有文件
sort 以結果中的指定字段排序
查詢所有,分頁查詢,每頁5條,按年齡倒序,只查詢名字,年齡和位址
get /dangdang/emp/_search?q=*&sort=age:desc&size=5&from=0&_source=name,age,address
dsl檢索
查詢所有(match_all)
match_all關鍵字:返回索引中的全部文件
get /dangdang/emp/_search
}}
查詢結果中返回指定條數(size)
size 關鍵字: 指定查詢結果中返回指定條數。 預設返回值10條,一般配合from使用,實現分頁查詢
get /dangdang/emp/_search
}, "size"
: 1}
分頁查詢(from)
from 關鍵字: 用來指定起始返回位置,和size關鍵字連用可實現分頁效果
get /dangdang/emp/_search
}, "size"
: 2,
"from"
: 1}
查詢結果中返回指定字段(_source)
_source 關鍵字: 是乙個陣列,在陣列中用來指定展示那些字段
get /dangdang/emp/_search
}, "_source":[
"age", "name"
]}
排序
get /ems/emp/_search
}, "sort":[
}, }],
"size"
: 1}
get /dangdang/emp/_search}}
}
note1: 通過使用term查詢得知es中預設使用分詞器為標準分詞器(standardanalyzer),標準分詞器對於英文單詞分詞,對於中文單字分詞。
get /dangdang/emp/_search}}
}
get /dangdang/emp/_search
}}
萬用字元查詢(wildcard)
wildcard 關鍵字: 萬用字元查詢 ? 用來匹配乙個任意字元 * 用來匹配多個任意字元**
get /dangdang/emp/_search}}
}
多id查詢(ids)
ids 關鍵字 : 值為陣列型別,用來根據一組id獲取多個對應的文件
get /dangdang/emp/_search
}}
get /dangdang/emp/_search
}}
布林查詢(bool)
bool 關鍵字: 用來組合多個條件實現複雜查詢
must: 相當於&& 同時成立
should: 相當於|| 成立乙個就行
must_not: 相當於! 不能滿足任何乙個
get /dangdang/emp/_search}}
], "must_not":[
}}]}
}, "sort":[
}]}
get /dangdang/emp/_search}},
"highlight":}
}, "sort":[
}]}
多欄位高亮 使用require_field_match
開啟多個欄位高亮
get /dangdang/emp/_search}},
"highlight":}
, "require_field_match"
:"false"
}, "sort":[
}]}
多欄位查詢(multi_match)
get /dangdang/emp/_search
}}
多欄位分詞查詢(query_string)
get /dangdang/emp/_search
}}
kibana中Visualize失效的解決辦法
當我們在kibana 如圖1 1所示 中辛辛苦苦建立很多個visual,但是過了幾天開啟發現變成了,如圖1 2 和圖1 3的情況,根據提示好像,我們只能夠進行重建visualize,但是重建也是乙個不小的人力成本。下面將給出具體的原因和解決辦法。圖 1 1 kibana中visualize 圖 1 ...
devTool引發的型別轉化異常
今天在開發的時候遇到了一次型別轉換異常 com.dabanjia.soul.keeper.api.uac.model.company can not cast to com.dabanjia.soul.keeper.api.uac.model.company 包命類名完全相同 原因 pom檔案中引入...
Kibana中doc與search策略的區別
在kibana中包含兩種策略 doc和search。使用了兩個迴圈佇列來獲取請求,並進行響應。doc的 如下 clientmethod mget search的 如下 clientmethod msearch 通過查詢api可以發現 mget命令,可以執行多個查詢。但是查詢條件基本是index,ty...