1. 程式人生 > >ElasticSearch搜尋引擎(一:es安裝及增刪改)

ElasticSearch搜尋引擎(一:es安裝及增刪改)

ElasticSearch下載地址:https://www.elastic.co/cn/downloads/elasticsearch

es是一個使用java編寫的開源專案,所以需要jdk環境支援(且jdk版本須在1.8以上),安裝方式簡單粗暴,通過上方地址下載完壓縮包後直接解壓,進入bin目錄執行elasticsearch.bat或elasticsearch.sh指令碼即可執行搜尋引擎。下面只是簡單介紹下如何使用restful的API對文件進行增刪改(es是面向文件程式設計)。

首先需要明白es的幾個名詞概念:

es的資料儲存格式為_index/_type/_id,你可以理解為關係型資料庫中的 _資料庫/_表格/_主鍵,下面給出幾個根據這個格式的增刪改例項:

 

一 、指定主鍵插入資料:

PUT /{index}/{type}/{id}
{
  "name": "小紅",
  "age":32,
  "address":"河北省邢臺市xxx" 
}

使用restful請求中的put請求,請求搜尋引擎地址,引數為json格式。一般本地es地址對外restful開放地址都是127.0.0.1:9200,那麼插入的語句就是   127.0.0.1:9200/{index}/{type}/{id},大括號內的欄位都是自定義的,es會根據你寫的名字把資料放到指定index下的type下,並給這條資料的id標識為{id},如果id欄位不填寫的話es會給資料一條自增長id。插入成功後es會返回json字串。

{
   "_index":    "website",
   "_type":     "blog",
   "_id":       "123",
   "_version":  1,
   "created":   true
}

 

二、根據id查詢資料:

GET /{index}/{type}/{id}

第一步插入之後,根據插入時的欄位使用get請求去es請求資料,路徑可以寫成127.0.0.1:9200/{index}/{type}/{id},可以看到查詢出的資料就是第一步插入的資料

{
  "_index" :   "website",
  "_type" :    "blog",
  "_id" :      "123",
  "_version" : 1,
  "found" :    true,
  "_source" :  {
      "name": "小紅",
      "age":32,
      "address":"河北省邢臺市xxx" 
}
}

 

三、根據id更新欄位:

es的更新和插入時的請求一模一樣,同樣使用put請求請求已存在的資料地址

PUT /{index}/{type}/{id}
{
  "name": "小黃",
  "age":33,
  "address":"河北省邢臺市xxx" 
}

執行插入請求後返回json格式返回值

{
  "_index" :   "website",
  "_type" :    "blog",
  "_id" :      "123",
  "_version" : 2,
  "created":   false <1>
}

從響應中我們可以看到_version欄位變為了2,created欄位也變為了false,執行後再次查詢這條資料,發現數據已修改完成。

 

四、根據id刪除資料:

DELETE /{index}/{type}/{id}

使用restful中的delete請求請求同樣的地址執行刪除文件操作,執行成功後es返回json格式字串

{
  "found" :    true,
  "_index" :   "website",
  "_type" :    "blog",
  "_id" :      "123",
  "_version" : 3
}

這樣就表示資料刪除成功,如果響應值中的found欄位為false時,則表示指定id的資料沒找到,再次執行第二步的查詢請求你將會發現資料已經找不到了。

 

下一篇將會講到es的全域性查詢和ik分詞器的安裝!!