ElasticSearch7.6.2安裝與簡單操作
Es系列工具都是開箱即用,所以安裝比較簡單,各個系統下都是解壓即可
前置環境:
windows10
ES7.6.2
Kibana7.6.2 :Es的可視化操作工具
ES中值得注意的事項:
type逐漸移除,預計版本8中將消失
head插件在高等級的版本中,不支持直接安裝,需要nodejs支持,我沒有使用這個插件。
SpringBoot與Es的整合,需要注意版本支持,且在7.x的ES版本中客戶端更新爲高級操作客戶端,在 SpringBoot中的ElasticSearchTemplate過時,建議使用高級客戶端或者ElasticSearchRestTemplate。
一、ES、Kibaba安裝
在以下目錄找到相應的壓縮文件,下載即可。
https://elasticsearch.cn/download/
分別解壓到對應目錄:
bin:下面存放着Es啓動文件 elasticsearch.bat
config:配置目錄
data:數據目錄
jdk、lib:Java運行環境以及依賴包
logs:日誌目錄
modules、plugins:模塊及插件目錄,head插件可以存放在plugins目錄下
在config目錄下的elasticsearch.yml文件末尾添加跨域允許:
#允許跨域讓各種可視化工具連接到Es
http.cors.enabled: true
http.cors.allow-origin: "*"
點擊bin目錄下的啓動文件:訪問本機9200端口,瀏覽器會返回一段json數據,包含Es信息等。
{
"name" : "LAPTOP-UBIBQATL",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "3dHFiRJdQW-G4HKoB-lzAg",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
ES安裝成功。
同理、找到kibana目錄下的bin中的啓動文件,就可以啓動kibana了.
config目錄下的配置文件可以配置:
#國際化、界面支持中文
i18n.locale: "zh-CN"
啓動Kinaba後,訪問5601端口,進入可視化界面。
二、簡單操作
Es支持Rest風格,在kinaba中使用開發者工具,輸入一下代碼,分別執行。
提交、更新數據
PUT /boot/user/1
{
"name":"Jaskson",
"age":18,
"gender":"male",
"desc":["碼農","直男","女裝大佬"]
}
POST /boot/user/2
{
"name":"Smish",
"age":16,
"gender":"male",
"desc":["產品經理","藝術家"]
}
#!POST和PUT都有更新、提交的功能。
#!更新時建議使用POST(update),因爲PUT不補全數據時,會用空數據覆蓋原數據。
#!反饋回來的語句如下:
{
"_index" : "boot",
"_type" : "user",
"_id" : "1",
"_version" : 2, //信息版本,已經被修改過
"result" : "updated", //操作類型
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 4,
"_primary_term" : 3
}
查詢數據
使用GET進行數據查詢操作。
#!查詢by id
GET /boot/user/_search
#! 查詢通過Json參數
GET /boot/user/_search?q=name:"Jaskson"
#!同上
GET /boot/user/_search
{
"query": {
"match": {
"name":"Jaskson"
}
}
}
#!返回數據
{
"took" : 713,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 0.6931471,
"hits" : [
{
"_index" : "boot",
"_type" : "user",
"_id" : "1",
"_score" : 0.6931471,
"_source" : {
"name" : "Jaskson",
"age" : 18,
"gender" : "male",
"desc" : [
"碼農",
"直男",
"女裝大佬"
]
}
}
]
}
}
略微複雜的查詢:
#!中文可以分詞
GET /boot/user/_search
{
"query": {
"match": {
"desc":"碼"
}
}
}
#! 過濾
GET /boot/user/_search
{
"query": {
"match": {
"desc":"碼"
}
},
"_source": ["name","desc"]
}
#! 排序
GET /boot/user/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"age": {
"order": "asc"
}
}
]
}
刪除數據
DELETE刪除數據
DELETE /boot/user/2
{
"_index" : "boot",
"_type" : "user",
"_id" : "2",
"_version" : 2,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 2,
"_primary_term" : 3
}