【V6.6】ElasticSearch-基礎(chǔ)篇.md

[TOC]

es基本概念

集群:通過唯一的名稱來區(qū)分集群

節(jié)點:默認(rèn)名稱是通過UUID來生成的吟税,當(dāng)然如果想加入到某個集群里面讨勤,需要修改成對應(yīng)的集群名稱

索引:名稱必須小寫

類型:將在V7.0以后移除

文檔:

主分片:

  • 允許你水平拆分/擴展存儲空間
  • 允許你跨分片分布和并行化操作以提高性能/吞吐量

復(fù)制分片:

  • 當(dāng)節(jié)點發(fā)生故障時以提供高可用性,因此箕戳,請務(wù)必注意确憨,復(fù)制分片永遠(yuǎn)不會在從復(fù)制的原始/主分片相同的節(jié)點上分配
  • 允許你擴展搜索量/吞吐量,因為可以在所有副本上并行執(zhí)行搜索

集群健康

curl -X GET "localhost:9200/_cat/health?v"

集群節(jié)點

curl -X GET "localhost:9200/_cat/nodes?v"

索引

查看所有索引:

curl -X GET "localhost:9200/_cat/indices?v"

創(chuàng)建索引:

curl -X PUT "localhost:9200/customer?pretty"

創(chuàng)建文檔(在創(chuàng)建文檔之前不用事先創(chuàng)建index)

創(chuàng)建文檔(明確指定ID用PUT)

curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "John Doe"
}
'

創(chuàng)建文檔(未明確指定ID用POST)

curl -X POST "localhost:9200/customer/_doc?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "Jane Doe"
}
'

查詢文檔

curl -X GET "localhost:9200/customer/_doc/1?pretty"

刪除索引

curl -X DELETE "localhost:9200/customer?pretty"

更新文檔

curl -X POST "localhost:9200/customer/_doc/1/_update?pretty" -H 'Content-Type: application/json' -d'
{
  "doc": { "name": "Jane Doe" }
}
'

動態(tài)添加字段

curl -X POST "localhost:9200/customer/_doc/1/_update?pretty" -H 'Content-Type: application/json' -d'
{
  "doc": { "name": "Jane Doe", "age": 20 }
}
'

使用簡單腳本修改文檔

curl -X POST "localhost:9200/customer/_doc/1/_update?pretty" -H 'Content-Type: application/json' -d'
{
  "script" : "ctx._source.age += 5"
}
'

刪除文檔

curl -X DELETE "localhost:9200/customer/_doc/2?pretty"

批量處理(_bulk API)

批量創(chuàng)建

curl -X POST "localhost:9200/customer/_doc/_bulk?pretty" -H 'Content-Type: application/json' -d'
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
'

批量操作

curl -X POST "localhost:9200/customer/_doc/_bulk?pretty" -H 'Content-Type: application/json' -d'
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}
'

加載簡單數(shù)據(jù)集(注意文件名沒有前面的@)

curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"

搜索API(默認(rèn)返回10條信息)

rest request URI

curl -X GET "localhost:9200/bank/_search?q=*&sort=account_number:asc&pretty"

rest request body

curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
  "query": { "match_all": {} },
  "sort": [
    { "account_number": "asc" }
    { "balance": { "order": "desc" } }
  ]
}
'

指定返回結(jié)果的fields

curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
  "query": { "match_all": {} },
  "_source": ["account_number", "balance"]
}
'

bool query

  • should: 滿足其中一個條件就行
curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "bool": {
      "should": [
        { "match": { "address": "mill" } },
        { "match": { "address": "lane" } }
      ]
    }
  }
}
'
  • must: 必須滿足所有條件
  • must_not: 返回不滿足當(dāng)前篩選添加的結(jié)果集
  • filter:篩選結(jié)果集
curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "bool": {
      "must": { "match_all": {} },
      "filter": {
        "range": {
          "balance": {
            "gte": 20000,
            "lte": 30000
          }
        }
      }
    }
  }
}
'

聚合(Aggregations)

es設(shè)置

設(shè)置es日志級別

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
  "transient": {
    "logger.org.elasticsearch.transport": "trace"
  }
}
'

es監(jiān)控

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "xpack.monitoring.collection.enabled": true
  }
}
'

公共選項

  • pretty=true (json格式展開)
  • human=false (以人方便閱讀的方式展示)
  • filter_path=took,-hits.hits._id (-代表不展示該字段)
  • flat_settings=true (以平面格式展示)
  • error_trace=true (顯示錯誤堆棧)

index API

自動創(chuàng)建index

禁止自動創(chuàng)建index:action.auto_create_index = false(默認(rèn)為true)

可以指定pattern:action.auto_create_index = +aaa,-bbb,+ccc,- (+ 允許瞪醋、-禁止)

禁止自動創(chuàng)建mapping:index.mapper.dynamic = false

version

  • 創(chuàng)建文檔時不指定默認(rèn)為1忿晕,后續(xù)修改一次+1
  • 當(dāng)然可以在創(chuàng)建文檔的時候指定version(version>=0)

Operation Type

方式一:
curl -X PUT "localhost:9200/twitter/_doc/1?op_type=create" -H 'Content-Type: application/json' -d'
{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}
'
方式二:
curl -X PUT "localhost:9200/twitter/_doc/1/_create" -H 'Content-Type: application/json' -d'
{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}
'

op_type=create or _create強制指定為創(chuàng)建模式,如果存在該文檔就會報錯

Routing(路由)

顯示指定路由到kimchy趟章,否則默認(rèn)為文檔ID的hash值

curl -X POST "localhost:9200/twitter/_doc?routing=kimchy" -H 'Content-Type: application/json' -d'
{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}
'

Timeout

curl -X PUT "localhost:9200/twitter/_doc/1?timeout=5m" -H 'Content-Type: application/json' -d'
{
    "user" : "kimchy",
    "post_date" : "2009-11-15T14:12:12",
    "message" : "trying out Elasticsearch"
}
'

delete API

  • delete document
curl -X DELETE "localhost:9200/twitter/_doc/1"
  • 可以刪除多個index杏糙、多個type
curl -X POST "localhost:9200/twitter,blog/_docs,post/_delete_by_query" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match_all": {}
  }
}
'
  • 查看刪除狀態(tài)
curl -X GET "localhost:9200/_tasks?detailed=true&actions=*/delete/byquery"
  • 取消刪除任務(wù)
curl -X POST "localhost:9200/_tasks/r1A2WoRbTwKZ516z6NEs5A:36619/_cancel"
  • 查看取消刪除任務(wù)情況
curl -X POST "localhost:9200/_delete_by_query/r1A2WoRbTwKZ516z6NEs5A:36619/_rethrottle?requests_per_second=-1"
  • 并行刪除

update API

  • 腳本更新
curl -X POST "localhost:9200/test/_doc/1/_update" -H 'Content-Type: application/json' -d'
{
    "script" : {
        "source": "ctx._source.counter += params.count",
        "lang": "painless",
        "params" : {
            "count" : 4
        }
    }
}
'
  • 局部更新
curl -X POST "localhost:9200/test/_doc/1/_update" -H 'Content-Type: application/json' -d'
{
    "doc" : {
        "name" : "new_name"
    }
}
'
  • upsert

Reindex API

賦值文檔到新索引里面去

curl -X POST "localhost:9200/_reindex" -H 'Content-Type: application/json' -d'
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter"
  }
}
'
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蚓土,隨后出現(xiàn)的幾起案子宏侍,更是在濱河造成了極大的恐慌,老刑警劉巖蜀漆,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谅河,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機绷耍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門吐限,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人褂始,你說我怎么就攤上這事诸典。” “怎么了崎苗?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵狐粱,是天一觀的道長。 經(jīng)常有香客問我胆数,道長肌蜻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任必尼,我火速辦了婚禮蒋搜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘判莉。我一直安慰自己豆挽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布骂租。 她就那樣靜靜地躺著祷杈,像睡著了一般斑司。 火紅的嫁衣襯著肌膚如雪渗饮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天宿刮,我揣著相機與錄音互站,去河邊找鬼。 笑死僵缺,一個胖子當(dāng)著我的面吹牛胡桃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播磕潮,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼翠胰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了自脯?” 一聲冷哼從身側(cè)響起之景,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎膏潮,沒想到半個月后锻狗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年轻纪,在試婚紗的時候發(fā)現(xiàn)自己被綠了油额。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡刻帚,死狀恐怖潦嘶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情崇众,我是刑警寧澤衬以,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站校摩,受9級特大地震影響看峻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜衙吩,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一互妓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坤塞,春花似錦冯勉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浮禾,卻和暖如春交胚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盈电。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工蝴簇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匆帚。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓熬词,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吸重。 傳聞我的和親對象是個殘疾皇子互拾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本周在數(shù)據(jù)庫研發(fā)和運營組做了關(guān)于ELK的分享,這個分享主要是居于ES部分做的相關(guān)理論和測試的結(jié)論嚎幸。下面是對此次分享...
    飛鴻無痕閱讀 5,898評論 0 8
  • [TOC] 簡介 Elasticsearch 是一個實時的分布式搜索分析引擎颜矿, 它能讓你以一個之前從未有過的速度和...
    0x70e8閱讀 613評論 0 6
  • 思念猶如毒草,日日啃噬著我鞭铆,痛苦猶如利刃或衡,夜夜切割著我焦影。灼灼桃花盛開時,我的思念和痛苦無處可去封断,所以——我卷起了漫...
    小倩星閱讀 1,150評論 1 63
  • 二 上次事后不久斯辰,電視臺的記者便上門來采訪了謝老漢。節(jié)目播出后坡疼,“黑子”抓到盜賊的這事成了大新聞彬呻,謝老漢跟著他的“...
    青龍山土匪閱讀 566評論 0 0
  • (圍爐話杰出—籌建梯隊)平臺打造眾人建,平臺雖好眾齊心柄瑰。圍爐夜話說天方闸氮,談笑風(fēng)生一將成。五湖四海到前川教沾,三山五岳各...
    甘朝武閱讀 152評論 3 0