搜尋引擎Elasticsearch REST API學習

來源:互聯網
上載者:User

   Elasticsearch為開發人員提供了一套基於Http協議的Restful介面,只需要構造rest請求並解析請求返回的json即可實現訪問Elasticsearch伺服器。Elasticsearch的API介面功能豐富,包含叢集、監控、部署管理等,也包含常用的文檔、索引操作,本文主要是使用Postman工具對文檔操作相關的api做學習記錄。

新增文檔

PUT方式:http://localhost:9200/store/product/1  //指定id,存在則更新,不存在則新增

POST方式:http://localhost:9200/store/product   //自動產生id

其中store表示Index,product表示Type,數字1表示的是Document(文檔)的主鍵,主鍵可以是任意的形式,也可以不指定主鍵,Elasticsearch將會自動產生一個唯一主鍵,但是必須是post方式提交請求。

測試:

返回結果中_id:自動產生的主鍵,_shards:表示分區資訊,total:2表示有兩個分區,successful:1 表示成功賦值了一份。_version:1表示該文檔的版本號碼,每修改一次,版本號碼都會自增。

Elasticseach-head中查看資料:

根據主鍵查詢

GET方式:http://localhost:9200/store/product/nMWgs2UBQISnN0EoTXZL   Elasticserach提供的是restful api,很容易理解這個介面形式。

返回結果中_source表示返回的Doucment(文檔)類容,其他幾個是Elasticsearch文檔結構欄位。如果只需要_source內容不需要其他結構欄位,還可以在請求url上加上屬性”/_source”,將只返回source部分容,請求:http://localhost:9200/store/product/1/_source

根據主鍵更新文檔

在 Elasticsearch 中文檔是 不可改變 的,不能修改它們。如果想要更新現有的文檔,需要 重建索引或者進行替換,更新介面同新增文檔介面,使用/index/type/key的形式。Elasticsearch的實現方式是將舊的文檔標記為刪除,並增加一個全新的文檔。標記為刪除的文檔將不再可以直接操作,但它並不會立即消失,Elasticsearch會在後台清理這些已標記為刪除的文檔。

如果明確知道修改文檔的哪部分資料,還可以通過在上述請求URL後面添加“/_update”並使用POST的方式,來更新資料,雖然這個看上去像是直接更新的,實際上也是重新建立了一個新的文檔,處理過程為是先從就的文檔中構建Json資料,並根據請求修改的欄位修改json資料,然後將就文檔標記為刪除,添加一個新文檔。請求如下:

如果並發修改文檔,可以使用version欄位實樂觀鎖,修改的目的文件的版本號碼version和傳入的不一致,則會修改失敗,請求url:http://localhost:9200/store/product/1/_update?version=4

根據主鍵刪除

使用DELETE方式,請求格式 host/index/type/key

搜尋文檔

Elasticsearch提供了強大的搜尋功能,搜尋參數可以放在請求url上,也可以放在body中,請求基本格式: host/index/type/_search

  1. GET方式+ url參數的方式進行全文檢索搜尋

返回結果中_score是搜尋引擎的概念,表示相關度,分數越高表示此文檔與搜尋條件關鍵字的匹配程度越高。

 

   2. 使用match運算式進行全文檢索搜尋

   3. elasticsearch也支援分頁查詢,使用from和size兩個參數指定頁碼和頁大小即可。

更詳細的說明參考官方文檔:

中文文檔:www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

英文文檔:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.