利用Elasticsearch-head能夠在界面上(http://127.0.0.1:9100/)對索引進行增刪改查數據庫
爲了方便直觀咱們使用Head插件提供的接口進行演示,實際上內部調用的RESTful接口。 url
RESTful接口URL的格式:http://localhost:9200/index/type/[id]spa
其中index、type是必須提供的,id是可選的,不提供es會自動生成。插件
index、type將信息進行分層,利於管理。code
index能夠理解爲數據庫;type理解爲數據表;id至關於數據庫表中記錄的主鍵,是惟一的。blog
將以下一條歌曲信息的數據提交到ES中建立索引:索引
url:http://127.0.0.1:9200/song001/list001/5
data:{"number":32768,"singer":"楊坤","size":"777","song":"今夜20歲","tag":"中國好聲音","timelen":319}接口
索引名字是:song001;
索引的類型是:list001;
本記錄的id是:5
返回的信息能夠看到建立是成功的,而且版本號是1;ES會對記錄修改進行版本跟蹤,第一次建立記錄爲1,同一條記錄每修改一次就追加1。
至此一條記錄就提交到ES中創建了索引,注意HTTP的方法是PUT,不要選擇錯了。文檔
根據索引時的ID查詢的文檔的RESTful接口以下 get
url:http://localhost:9200/song001/list001/5
data:空
HTTP方法採用GET的形式。
此外還能夠採用,輕量搜索:http://localhost:9200/studentdb/student/_search/
返回結果不只告知匹配了哪些文檔,還包含了整個文檔自己:顯示搜索結果給最終用戶所需的所有信息。
使用 _search
端點,並將查詢自己賦值給參數 q=
查詢條件(q)參數用於指定返回的文檔必須匹配的查詢條件,例如:q=title:azure,指定搜索title字段中包含azure關鍵字的文檔;
能夠設置一個字段包含多個關鍵字,關鍵字之間使用空格或逗號分隔,例如:q=title:(azure,aws,cloud),或 q=title:(azure aws cloud),指定搜索title字段中包含azure,aws或cloud的文檔;只要title字段包含任意一個關鍵字,文檔就知足查詢條件;
q參數能夠指定搜素一個短語,短語使用雙引號標識,例如:q=title:"azure vs aws",指定搜索title中包含短語「azure vs aws」的文檔;
在查詢條件中,也能夠指定操做符:+或-,操做符 + 用於指定返回的文檔必須匹配查詢條件;操做符 - 用於指定返回的文檔不匹配查詢條件;操做符之間以空格分隔,操做符是位於查詢條件=號右側,字段前面,例如 q=+title:azure -title:aws,指定搜索字段title中只能包含azure,不能包含aws;
還能夠,使用查詢表達式:【注意用POST】
http://localhost:9200/song001/list001/_search/
{
"query": {
"match": {
"singer": "哈哈"
}}}
![](http://static.javashuo.com/static/loading.gif)
更復雜的查詢JSON能夠參考Tab:基本查詢 中生成的。
根據索引時的ID更新的文檔的內容,其RESTful接口以下
url:http://localhost:9200/song001/list001/5
HTTP方法採用PUT的形式。
將歌手名由「楊坤」改爲「楊坤獨唱」;
結果中的version字段已經成了2,由於咱們這是是修改,索引版本遞增;created字段是false,表示此次不是新建而是更新。
更新接口與建立接口徹底同樣,ES會查詢記錄是否存在,若是不存在就是建立,存在就是更新操做。
根據索引時的ID更新的文檔的內容,其RESTful接口以下
url:http://127.0.0.1:9200/song001/list001/5
HTTP方法採用DELETE的形式。
刪除事後,再經過查詢接口去查詢將得不到結果。
總結:
增刪改查的RESTful接口URL形式:http://localhost:9200///[]
增刪改查分別對應:HTTP請求的PUT、DELETE、PUT、GET方法。PUT調用是若是不存在就是建立,已存在是更新。