前言
服務器:CentOS-6.7node
運行系統:windows10windows
JDK版本:1.8服務器
Elasticsearch版本:5.6.6app
插件:kibana、elasticsearch-headless
工具:postmanelasticsearch
1、集羣
查看集羣是否健康工具
GET /_cluster/health
2、節點
查看節點列表
後面加了 ?v 能夠把表頭給顯示出來post
GET /_cat/nodes?v.net
3、索引
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 建立索引的別名
PUT /test_index/_alias/test
5.2 查詢索引的別名
GET /test_index/_alias/*
5.3 查詢別名指向哪個索引
GET /*/_alias/test
4、文檔
1. 增長文檔
1.1 自定義ID
能夠自動建立索引、類型,本身定義一個id
PUT /people/man/1
{
"name": "葉良辰",
"country": "china",
"age": 25,
"birthday": "1993-01-01",
"desc": "葉良辰,本地人,狂妄自大,惹了他,會有一百種方法讓你呆不下去!與趙日天是好基友,兩我的風風火火闖九州"
}
1.2 隨機生成ID
能夠自動建立索引、類型,自動建立一個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 經過腳本的參數方式
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
編輯文件,添加下列內容
ctx._source.age += param.num
執行下面的命令
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
}
}
雖然用了+=,可是,上面的結果倒是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 查詢出某些字段內容
後面跟了 ?_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 搜索結果中必須包括run、jump兩種愛好
GET people/_search
{
"query": {
"match": {
"hobby": {
"query": "run jump",
"operator": "and"
}
}
}
}
4.7.2 使用百分比,搜索結果中必須包括6個愛好中的一半,也就是3個
GET people/_search
{
"query": {
"match": {
"hobby": {
"query": "run jump basketball football piano pingpang",
"minimum_should_match": "50%"
}
}
}
}
4.7.3 使用數量,搜索結果中必須包括3個愛好
GET people/_search
{
"query": {
"bool": {
"should": [
{"match": {
"hobby": "basketball"
}},
{"match": {
"hobby": "pingpang"
}},
{"match": {
"hobby": "piano"
}},
{"match": {
"hobby": "run"
}}
],
"minimum_should_match": 3
}
}
}
5、高級查詢因爲內容比較多,篇幅比較大,這裏把文章分爲兩部分,本文是簡單的增刪改查————————————————版權聲明:本文爲CSDN博主「前方一片光明」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/qq_26230421/article/details/80366649