<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          elasticsearch專用術(shù)語及基本用法

          共 3276字,需瀏覽 7分鐘

           ·

          2021-08-28 09:55

          前言

          昨天我們分享search的下載安裝過程。同時進行了一些簡單測試,今天我們來看下search的專業(yè)術(shù)語和基本用法。根據(jù)官方對elasticsearch的定位,我們可以說elasticsearc是一套面向文檔(json)的解決方案。下面我們就來看下,它到底是怎樣面向文檔的。

          專用術(shù)語

          索引

          索引我們昨天已經(jīng)說過了,它其實就相當于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,一個 索引 類似于傳統(tǒng)關(guān)系數(shù)據(jù)庫中的一個 數(shù)據(jù)庫 ,是一個存儲關(guān)系型文檔的地方。索引 (index) 的復(fù)數(shù)詞為 indicesindexes

          除此之外,索引還可以當作動詞來使用。索引一個文檔 就是存儲一個文檔到一個 索引 (名詞)中以便被檢索和查詢。這非常類似于 SQL語句中的 INSERT 關(guān)鍵詞,除了文檔已存在時,新文檔會替換舊文檔情況之外。

          倒排索引

          關(guān)系型數(shù)據(jù)庫通過增加一個 索引 比如一個 B樹(B-tree)索引 到指定的列上,以便提升數(shù)據(jù)檢索速度。ElasticsearchLucene使用了一個叫做 倒排索引 的結(jié)構(gòu)來達到相同的目的。

          默認的,一個文檔中的每一個屬性都是 被索引 的(有一個倒排索引)和可搜索的。一個沒有倒排索引的屬性是不能被搜索到的。

          基本用法

          新增數(shù)據(jù)(創(chuàng)建索引)

          關(guān)于創(chuàng)建索引其實我們昨天已經(jīng)演示過了,但是昨天是為了測試,所以今天我們還需要再次補充說明下。

          首先創(chuàng)建所以的語法如下:

          curl -X PUT "localhost:9200/megacorp/employee/2?pretty" -H 'Content-Type: application/json' -d'
          {
              "name" :  "syske",
              "age" :        25,
              "about" :      "I love to read book",
              "interests": [ "sports", "music" ]
          }'

          這里我們簡單介紹下上面的請求參數(shù):

          • megacorp:表示索引名稱,也就相當于我們傳統(tǒng)關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)庫,可以根據(jù)自己的需要指定
          • employee:官方給出的說明是類型名稱,但我覺得應(yīng)該叫子索引更合理,就類似于傳統(tǒng)數(shù)據(jù)庫下面的數(shù)據(jù)表
          • 1:表示我們當前數(shù)據(jù)的id,也就是這條數(shù)據(jù)對應(yīng)的唯一索引
          • 請求體:下面的json表示我們的請求體

          昨天我們說了,es本身只支持GET,  PUT,  DELETE,  HEAD,這里的PUT既可以表示新增,也可以表示更新,如果記錄存在,則進行更新操作,否則進行新增操作。關(guān)于這一點我們昨天也已經(jīng)演示過了,這里就不再贅述。

          為了方便測試,我們后期的內(nèi)容直接在git bash下執(zhí)行curl命令了,windowscmd體驗太差:

          從上面返回結(jié)果來看,當文檔(json數(shù)據(jù))不存在的時候,它返回的resultcreated,但如果文檔已經(jīng)存在,它返回的結(jié)果是updated:

          數(shù)據(jù)檢索

          數(shù)據(jù)檢索也很簡單,直接發(fā)送GET請求即可:

          curl -X GET "localhost:9200/megacorp/employee/1?pretty"

          返回結(jié)果如下:

          {
            "_index" : "megacorp",
            "_type" : "employee",
            "_id" : "1",
            "_version" : 1,
            "_seq_no" : 0,
            "_primary_term" : 1,
            "found" : true,
            "_source" : {
              "name" : "syske",
              "age" : 25,
              "about" : "I love to read book",
              "interests" : [
                "sports",
                "music"
              ]
            }
          }

          我們先解釋下返回結(jié)果:

          • _index:索引
          • _type:數(shù)據(jù)類型
          • _id:數(shù)據(jù)id,這個是我們新增數(shù)據(jù)的時候指定的
          • _version:數(shù)據(jù)版本,新增之后默認版本號為1,每更新一次,數(shù)據(jù)庫版本加一
          • _seq_no:序號,主要用來記錄新增、更新和刪除的操作順序,對數(shù)據(jù)而言,通過這個字段可以確定數(shù)據(jù)創(chuàng)建順序(我自己覺得可以)
          • _primary_term:和集群相關(guān)的一個數(shù)據(jù),應(yīng)該主要是為了標記節(jié)點號,根據(jù)資料顯示,這個數(shù)據(jù)在重啟后會發(fā)生變化。這個參數(shù)后面再研究吧。
          • found:表示是否有搜索到數(shù)據(jù),如果未搜索到結(jié)果為false
          • _source:查詢到的結(jié)果

          這里說下請求地址后面這個參數(shù)pretty,這個參數(shù)的意思是對請求參數(shù)和返回結(jié)果進行美化,如果沒有這個參數(shù),我們看到的數(shù)據(jù)就會是一坨,不方便查看:

          加了這個參數(shù),返回結(jié)果就好看多了:

          數(shù)據(jù)更新

          更新操作和新增是一模一樣的,這里我們就不做過多說明,唯一的區(qū)別是,如果返回結(jié)果resultupdated,則表示數(shù)據(jù)更新成功:

          數(shù)據(jù)刪除

          刪除數(shù)據(jù)和查詢數(shù)據(jù)很像,只需要把GET替換成DELETE即可:

           curl -X DELETE "localhost:9200/megacorp/employee/4?pretty" -H 'Content-Type: application/json'

          返回結(jié)果resultdeleted表示刪除成功。

          如果數(shù)據(jù)不存在,則返回結(jié)果為not_found:

          總結(jié)

          由于時間的關(guān)系,今天暫時先分享這么多,專業(yè)術(shù)語我們暫時只說了索引,基本用法這塊現(xiàn)在也分享了基本的增刪改查,確實節(jié)奏有點慢,但是暫時也沒辦法了,今天一整天都在處理oncall問題,也抽不出時間搞其他內(nèi)容了,不過馬上就周末了,兩天時間不說把elasticsearch吃透,但是梳理下相關(guān)知識點,對它進行一個簡單的研究還是可以的。好了,今天就先到這里吧,想了解更多知識點的小伙伴可以自己看官方文檔:

          https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
          - END -


          瀏覽 38
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产无码av在线 国产一级内射视频 | 欧美性天天 | 音影先锋成人 | 三级视频国产 | 日日人人爱人人 |