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
返回結果中_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