使用kibana或postman操作Elasticsearch的常用命令
前言
服務器:CentOS-6.7
運行系統(tǒng):windows10
JDK版本:1.8
Elasticsearch版本:5.6.6
插件:kibana、elasticsearch-head
工具:postman
一、集群
查看集群是否健康
GET /_cluster/health
二、節(jié)點
查看節(jié)點列表
后面加了 ?v?可以把表頭給顯示出來
GET /_cat/nodes?v
三、索引
1 查詢索引
1.1?查詢所有索引
GET /_cat/indices?v
1.2?查詢單個索引的映射
GET /test_index/_mapping
2. 添加一個索引(通過mapping)
PUT /people
{
? "settings": {
? ? "number_of_shards": 3,
? ? "number_of_replicas": 1
? },
? "mappings": {
? ? "man": {
? ? ? "dynamic": "strict",
? ? ? "properties": {
? ? ? ? "name": {
? ? ? ? ? "type": "text"
? ? ? ? },
? ? ? ? "age": {
? ? ? ? ? "type": "integer"
? ? ? ? },
? ? ? ? "birthday": {
? ? ? ? ? "type": "date",
? ? ? ? ? "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
? ? ? ? },
? ? ? ? "address":{
? ? ? ? ? "dynamic": "true",
? ? ? ? ? "type": "object"
? ? ? ? }
? ? ? }
? ? }
? }
}
"dynamic": "strict"? 表示如果遇到陌生field會報錯
"dynamic": "true"? ?表示如果遇到陌生字段,就進行dynamic mapping
"dynamic": "false"? ?表示如果遇到陌生字段,就忽略
3.?刪除索引
3.1 刪除一個索引
DELETE /people
3.2 刪除多個索引
DELETE /index_one,index_two
4.?添加字段映射
PUT /people/_mapping/man
{
"properties": {
"tags":{
"type": "text"
}
}
}
5.?索引的別名
5.1?創(chuàng)建索引的別名
PUT /test_index/_alias/test
5.2 查詢索引的別名
GET /test_index/_alias/*
5.3?查詢別名指向哪一個索引
GET /*/_alias/test
四、文檔
1. 增加文檔
1.1 自定義ID
可以自動創(chuàng)建索引、類型,自己定義一個id
PUT /people/man/1
{
"name": "葉良辰",
"country": "china",
"age": 25,
"birthday": "1993-01-01",
"desc": "葉良辰,本地人,狂妄自大,惹了他,會有一百種方法讓你呆不下去!與趙日天是好基友,兩個人風風火火闖九州"
}
1.2?隨機生成ID
可以自動創(chuàng)建索引、類型,自動創(chuàng)建一個id
POST /people/man
{
"name": "葉良辰",
"country": "china",
"age": 25,
"birthday": "1993-01-01",
"desc": "葉良辰,本地人,狂妄自大,惹了他,會有一百種方法讓你待不下去!與趙日天是好基友,兩個人風風火火闖九州"
}
2. 修改文檔
2.1全文修改
全文修改使用的是PUT命令,把所有字段都帶上
PUT /people/man/1
{
"name": "葉良辰",
"country": "china",
"age": 25,
"birthday": "1993-01-01",
"desc": "葉良辰,本地人,狂妄自大,惹了他,會有一百種方法讓你呆不下去!與趙日天是好基友,兩個人風風火火闖九州"
}
2.2部分修改(partial?update)
使用POST命令,里面使用doc修改某個字段值
POST /people/man/1/_update
{
? "doc": {
? ? "name": "zhangsan"
? }
}
2.3 通過腳本直接修改
POST /people/man/1/_update
{
"script": "ctx._source.age += 10"
}
或者
POST /people/man/1/_update
{
? "script": {
? ? "lang": "painless",
? ? "source": "ctx._source.age += 10"
? }
}
2.4 通過腳本的參數(shù)方式
POST /people/man/1/_update
{
? "script": {
? ? "lang": "painless",
? ? "source": "ctx._source.age = params.age",
? ? "params": {
? ? ? "age": 100
? ? }
? }
}
2.5?通過groovy腳本文件方式
首先在%ES_HOME%/config/scripts文件夾下面新建一個groovy文件,取名add-age.groovy
?
編輯文件,添加下列內(nèi)容
ctx._source.age += param.num
執(zhí)行下面的命令
POST /people/man/1/_update
{
"script": {
"lang": "groovy",
"file": "add-age",
"params": {
"num": 15
}
}
}
2.6?文檔不存在時的修改(upsert)
在修改document的時候,如果該文檔不存在,則使用upsert操作進行初始化
POST people/man/1/_update
{
"script": "ctx._source.age += 10",
"upsert": {
"age": 20
}
}
雖然用了+=,但是,上面的結(jié)果卻是20,因為文檔不存在,只是進行了初始化!
3. 刪除文檔
3.1 刪除單個文檔
DELETE /people/man/1
3.2?刪除type下的所有文檔
POST /people/man/_delete_by_query?conflicts=proceed
{
"query": {
"match_all": {}
}
}
4.查詢文檔
下面列舉一些簡單的查詢,更高級的查詢在第五部分做介紹
4.1?查詢單個文檔
GET /people/man/2
4.2?使用_mget批量查詢文檔
GET /_mget
{
"docs": [
{
"_index": "people",
"_type": "man",
"_id": 1
},
{
"_index": "people",
"_type": "man",
"_id": 2
}
]
}
index和type相同的時候,可以合并到一起:
GET /people/man/_mget
{
"docs": [
{
"_id": 1
},
{
"_id": 2
}
]
}
4.3?查詢所有文檔
方式一(簡單查詢):
GET /people/_search
方式二:
POST /people/_search
{
? "query": {
? ? "match_all": {}
? }
}
4.4?查詢出某些字段內(nèi)容
后面跟了 ?_source=field1,field2
GET people/man/_search?_source=name,country
{
"query": {
"match": {
"age": "25"
}
}
}
4.5?查詢多個索引下的多個type
GET /index1,index2/type1,type2/_search
查詢所有索引下的部分type
GET /_all/type1,type2/_search
4.6 模糊查詢(全文搜索)
注意:下面的“葉良辰”會被拆分成:葉、良、辰,只要name里面包含這三個字的任意一個,都會被查詢到!
另外,中英文搜索會不一樣,中文是以一個漢字為單位,
英文默認以一個單詞為單位進行拆分
POST /people/_search
{
? "query": {
? ? "match": {
? ? ? "name": "葉良辰"
? ? }
? },
? "sort": [
? ? {
? ? ? "birthday": {
? ? ? ? "order": "desc"
? ? ? }
? ? }
? ]
}
4.7?全文搜索的精準度
4.7.1 搜索結(jié)果中必須包括run、jump兩種愛好
GET people/_search
{
"query": {
"match": {
"hobby": {
"query": "run jump",
"operator": "and"
}
}
}
}
4.7.2?使用百分比,搜索結(jié)果中必須包括6個愛好中的一半,也就是3個
GET people/_search
{
"query": {
"match": {
"hobby": {
"query": "run jump basketball football piano pingpang",
"minimum_should_match": "50%"
}
}
}
}
4.7.3?使用數(shù)量,搜索結(jié)果中必須包括3個愛好
GET people/_search
{
"query": {
"bool": {
"should": [
{"match": {
"hobby": "basketball"
}},
{"match": {
"hobby": "pingpang"
}},
{"match": {
"hobby": "piano"
}},
{"match": {
"hobby": "run"
}}
],
"minimum_should_match": 3
}
}
}
五、高級查詢
由于內(nèi)容比較多,篇幅比較大,這里把文章分為兩部分,本文是簡單的增刪改查
————————————————
版權(quán)聲明:本文為CSDN博主「前方一片光明」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_26230421/article/details/80366649
轉(zhuǎn)載于:https://www.cnblogs.com/zeenzhou/p/11588505.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的使用kibana或postman操作Elasticsearch的常用命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java的可重入锁
- 下一篇: 学习antd-design-pro