Elasticsearch-04 ES中的術語和基本用法

      網友投稿 968 2025-03-31

      文章目錄

      概述

      術語

      基本用法

      創建索引

      非結構化創建

      結構化創建

      官方API文檔

      插入

      指定文檔id插入(PUT方法)

      指定生成文檔id插入 (POST方法)

      修改

      直接修改文檔

      腳本修改文檔

      刪除

      刪除Document 文檔

      刪除 index 索引

      查詢

      概述

      有時候對象不僅僅只是簡單的鍵值列表, 更多時候它擁有復雜的數據結構, 比如包含日期、 地理位置、 另一個對象或者數組。

      將這些數據保存到由行和列組成的關系數據庫中, 就好像是把一個豐富的對象拆散了放入一個非常大的表格中:你不得不拆散對象以適應表模式(通常一列表示一個字段) , 然后又不得不在查詢的時候重建它們。

      elasticsearch是面向文檔(document oriented)的, 這意味著它可以存儲整個對象或文檔即document

      然而它不僅僅是存儲, 還會索引(index)每個文檔的內容使之可以被搜索

      elasticsearch中, 你可以對文檔(而非成行成列的數據) 進行索引、 搜索、 排序、 過濾。這也是Elasticsearch能夠執行復雜的全文搜索的原因之一

      Elasticsearch使JSON 作為文檔序列化格式。

      術語

      索引:含有相同屬性的文檔集合 ,相當于關系型數據庫中的database

      類型:索引可以定義一個或多個類型,文檔必須屬于一個類型,相當于table

      文檔:文檔是可以被索引的基本數據單位 ,相當于一條記錄

      Elasticsearch -> Indexes-> Types -> Documents -> Fields Relational DB -> Databases -> Tables -> Rows -> Columns

      1

      2

      和索引相關的有“分片”和“備份”

      分片:每個索引都有多個分片,每個分片是一個Lucene索引

      假如一個索引數據量很大,就會產生硬盤壓力很大。所以就要‘分片’來分擔壓力??梢运降臄U展和拆分以及分布式的操作,可以提高搜索和其他操作

      備份:拷貝一份分片就完成了分片的備份

      當一個主分片失敗或出現問題時,"備份分片"就可以代替工作,從而提高了ES的可用性,備份的分片還可以執行搜索的操作,來分攤搜索的壓力。

      ES創建索引時默認創建5個分片一個備份 , 分片的數量只能在創建索引時指定,備份可以動態修改

      索引命名規范:字母小寫,且不含中劃線

      基本用法

      使用RESTful API, 通過9200端口的與Elasticsearch進行通信

      http://:/<索引>/<類型>/<文檔id>

      1

      HTTP方法:

      GET , POST , PUT , HEAD , DELETE

      1

      創建索引

      非結構化創建

      粗線框代表主分片,對應的相同數字的細線框則代表備份,我們創建book索引的時候,默認5個分片(0,1,2,3,4) 以及一個備份 ,如上所示。

      怎么確定是非結構化的呢?

      結構化的關鍵詞 mappings,為空說明為非結構化,并沒有結構映射的信息。

      結構化創建

      { "novel": { "properties": { "title": { "type": "text" } } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      點擊Request,返回成功后,回到overview刷新下索引,查看索引信息如下

      在web頁面書寫json沒有提示,很容易出錯,這里我們通過postman來新建一個索引吧

      { "settings":{ "number_of_shards":3, "number_of_replicas":1 }, "mappings":{ "man":{ "properties":{ "name":{ "type":"text" }, "country":{ "type":"keyword" }, "age":{ "type":"integer" }, "date":{ "type":"date", "format":"yyyy-MM-dd HH:mm:ss || yyyy-MM-dd || epoch_millis" } } }, "woman":{ } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      時間格式 epoch_millis為時間戳格式

      body為json格式, 請求方法為put , 請求url為 http://localhost:9200/people

      返回結果:

      { "acknowledged": true, "shards_acknowledged": true, "index": "people" }

      1

      2

      3

      4

      5

      6

      通過head插件查看結果,刷新下

      查看索引信息如下

      官方API文檔

      當前版本 7.0 : https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

      5.6的版本的: https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html

      插入

      我們往 people 這個索引中的 man類型里寫入一條數據即文檔

      指定文檔id插入(PUT方法)

      { "name":"artisan", "country":"china", "age":18, "date":"2019-04-19" }

      1

      2

      3

      4

      5

      6

      7

      PUT 方法

      http://localhost:9200/people/man/1 -->" ip:port/索引/類型/文檔id

      到head插件中查看下數據

      id=1 ,是我們自己指定的

      指定生成文檔id插入 (POST方法)

      POST 方法

      RestFul 請求中僅指定 索引和類型即可,無需指定id,es自動生成id

      在head插件中刷新下,通過Brower瀏覽數據如下

      修改

      直接修改文檔

      URL: http://localhost:9200/people/man/1/_update 指定id ,注意后面要跟上“_update”

      方法: POST

      修改內容

      “doc”:{ 需要修改的信息 }

      1

      2

      Elasticsearch-04 ES中的術語和基本用法

      3

      4

      5

      head插件查看修改后的數據

      腳本修改文檔

      { "script":{ "lang":"painless", "inline":"ctx._source.age += 10" } }

      1

      2

      3

      4

      5

      6

      7

      或者,將參數放在外面指定,比如

      { "script":{ "lang":"painless", "inline":"ctx._source.age = params.age", "params":{ "age":99 } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      刪除

      刪除Document 文檔

      URL : http://localhost:9200/people/man/1/ ,刪除id=1的文檔

      方法: DELETE

      通過head插件查看,剛才id=1的數據已經被刪掉了

      刪除 index 索引

      方式一: web頁面中刪除

      索引被刪除后,索引中的數據將一并被刪除 ,請謹慎操作。

      方式二: 通過postman ,

      方法: DELETE, url : http://ip:port/index

      通過head插件查看

      查詢

      另開篇介紹,見ElasticSearch-05ElasticSearch之查詢與過濾

      Elasticsearch JSON

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:插入甘特圖
      下一篇:【沃土方案--大數據】柏睿數據-實時云數倉
      相關文章
      亚洲网址在线观看你懂的| 亚洲国产欧美一区二区三区| 亚洲欧美自偷自拍另类视| 亚洲国产亚洲综合在线尤物| 久热综合在线亚洲精品| 亚洲精品你懂的在线观看| 中文亚洲成a人片在线观看| 亚洲国产天堂久久综合| 亚洲精品成人久久久| 亚洲国产小视频精品久久久三级| 亚洲三级中文字幕| 亚洲av片一区二区三区| 在线观看亚洲免费视频| 国产亚洲福利一区二区免费看| 久久亚洲中文字幕无码| 国产亚洲人成在线影院| 亚洲黄片手机免费观看| 亚洲另类激情综合偷自拍图| 国产亚洲精品资源在线26u| 亚洲中文久久精品无码| 亚洲国产三级在线观看| 亚洲天堂在线播放| 国产亚洲精品看片在线观看 | 亚洲校园春色小说| 亚洲人成网站在线观看播放动漫| 亚洲午夜精品一区二区公牛电影院| 亚洲国产成人久久77| 亚洲第一男人天堂| 久久精品国产亚洲av品善| 亚洲第一黄片大全| 亚洲精品午夜国产VA久久成人| 亚洲AV无码第一区二区三区| 少妇中文字幕乱码亚洲影视| 亚洲另类春色校园小说| 伊人久久亚洲综合影院首页| 亚洲?V无码乱码国产精品| 在线观看亚洲成人| 亚洲欧洲日韩不卡| 亚洲制服丝袜第一页| 国产亚洲欧美日韩亚洲中文色| 亚洲日韩国产成网在线观看|