Elasticsearch使用REST API實現全文檢索

經過rest api添加檢索數據,閱讀官方文檔能夠發現,elasticsearch支持動態映射,可是其中有很多問題,且聽慢慢詳解。node

本文主要講述三點內容:json

1 Elasticsearch經常使用的rest apiapi

2 Elasticsearch使用bulk命令添加索引數據curl

ES REST API

  elasticsearch支持經過http請求響應服務,所以經過curl命令,能夠發送http請求,並獲得json返回內容。elasticsearch

  經常使用的rest請求包括:url

  檢查ES集羣狀態:spa

curl localhost:9200/_cat/health?v

  檢查ES節點狀態:rest

curl localhost:9200/_cat/nodes?v

  查詢全部的索引:code

curl localhost:9200/_cat/indices?v

  建立索引這種方式在4.1版本下會出現問題,下一小節再說):blog

curl -XPUT localhost:9200/索引名字/類型/id -d {"name":"xingoo"}

  刪除索引

curl -XDELETE localhost:9200/索引名字

  查詢索引:

curl -XGET localhost:9200/索引名字/類型名字/id

ES 使用bulk 添加數據

  動態映射沒法添加數據,不要擔憂!能夠使用bulk命令,添加json文件內的數據。

  1 定義json數據文件:

{"index":{"_index":"aaa123","_id":1}}
{"name":"xingoo","age":25}
{"index":{"_index":"aaa123","_id":2}}
{"name":"test111","age":31}
{"index":{"_index":"aaa123","_id":3}}
{"name":"test222","age":42}
{"index":{"_index":"aaa123","_id":4}}
{"name":"test333","age":13}

  注意的是,json文件名稱隨意指定,第一行定義了索引和一些經常使用字段:

  _index定義了索引的名稱,若是沒有指定須要在curl命令中添加索引名稱字段

  _type定義了索引的類型,若是沒有指定須要在curl命令中添加索引類型字段

  _id定義了該行數據的id,若是沒有指定,會隨機生成一串數字。

  2 執行命令

  進入到json文件所在的目錄,執行命令

curl localhost:9200/索引名稱/索引類型/_bulk?pretty --data-binary @data.json

  注意的是:

  若是json文件中定義了_index和_type,那麼這裏能夠不寫變成(即使寫了也會按照json文件中的生成)

curl localhost:9200/_bulk?pretty --data-binary @data.json

  相似的,若是按照上面咱們定義了_index卻沒有定義_type,那麼索引會是aaa123,類型爲咱們curl命令中指定的類型。

  能夠看到上面雖然指定了索引名稱爲bbb123,類型爲ccc123,可是json文件中指定了索引名稱爲aaa123。

  最後的索引文件中,索引名稱爲aaa123,類型爲ccc123。

  查詢索引狀態,能夠發現正常了。

相關文章
相關標籤/搜索