搜索引擎Elasticsearch REST API學習

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

新增文檔

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

POST方式:http://localhost:9200/store/product   //自動生成idapi

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

測試:restful

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

Elasticseach-head中查看數據:elasticsearch

根據主鍵查詢

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

返回結果中_source表示返回的Doucment(文檔)類容,其餘幾個是Elasticsearch文檔結構字段。若是隻須要_source內容不須要其餘結構字段,還能夠在請求url上加上屬性」/_source」,將只返回source部分容,請求:http://localhost:9200/store/product/1/_source工具

根據主鍵更新文檔

在 Elasticsearch 中文檔是 不可改變 的,不能修改它們。若是想要更新現有的文檔,須要 重建索引或者進行替換,更新接口同新增文檔接口,使用/index/type/key的形式。Elasticsearch的實現方式是將舊的文檔標記爲刪除,並增長一個全新的文檔。標記爲刪除的文檔將再也不能夠直接操做,但它並不會當即消失,Elasticsearch會在後臺清理這些已標記爲刪除的文檔。post

若是明確知道修改文檔的哪部分數據,還能夠經過在上述請求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兩個參數指定頁碼和頁大小便可。

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

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

英文文檔:https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html

相關文章
相關標籤/搜索