首先要講什么是文檔,我們中大多是java程序員,java是面向對象的,那么在elasticsearch看來:對象和文檔是等價的。只不過這個對象是可以被序列化成key-value形式的json串
文檔元數據:
文檔是用來以k-v的形式存儲數據的,文檔的組成不單單是有數據的,還有元數據;
其中三個元數據是必須記住的:
節點 | 說明 |
---|---|
_index | 索引(文檔存儲的地方) |
_type | 文檔存儲的類型 |
_id | 文檔的唯一標識 |
當然還有其他的元數據信息,這些信息我們需要在后面的課程中介紹,但是暫時必須記住的,就是上面的三個
3.1:es的curl命令行操作
curl是利用URL語法在命令行方式下工作的開源文件傳輸工具,使用curl可以簡單實現常見的get/post請求。簡單的認為是可以在命令行下面訪問url的一個工具。在centos的默認庫里面是有curl工具的,如果沒有請yum安裝即可。
curl
-X 指定http的請求方法 有HEAD GET POST PUT DELETE
-d 指定要傳輸的數據
-H 指定http請求頭信息
curl創建索引庫
curl -XPUT http://<ip>:9200/index_name/
PUT或POST都可以創建
3.1: 使用curl創建一個索引
curl -XPUT http://hadoop01:9200/blog01/
3.2:使用curl插入一個文檔
curl -XPUT http://hadoop01:9200/blog01/article/1 -d '{"id": "1", "title": " What is lucene"}'
3.3:使用curl查看文檔
curl -XGET "http://hadoop01:9200/blog01/article/1"
3.4:使用curl更新文檔
curl -XPUT http://hadoop01:9200/blog01/article/1 -d '{"id": "1", "title": " What is elasticsearch"}'
3.5:使用curl搜索文檔
curl -XGET "http://hadoop01:9200/blog01/article/_search?q=title:'elasticsearch'"
返回字段中需要我們知道的信息:
返回結果中最重要的部分是 hits ,它包含 total 字段來表示匹配到的文檔總數,並且一個 hits 數組包含所查詢結果的前十個文檔。
在 hits 數組中每個結果包含文檔的 _index 、 _type 、 _id ,加上 _source 字段。
這意味着我們可以直接從返回的搜索結果中使用整個文檔。這不像其他的搜索引擎,僅僅返回文檔的ID,需要你單獨去獲取文檔。
每個結果還有一個 _score ,它衡量了文檔與查詢的匹配程度。
默認情況下,首先返回最相關的文檔結果,就是說,返回的文檔是按照 _score 降序排列的。在這個例子中,我們沒有指定任何查詢,故所有的文檔具有相同的相關性,因此對所有的結果而言 1 是中性的 _score 。
max_score 值是與查詢所匹配文檔的 _score 的最大值。
took
took
值告訴我們執行整個搜索請求耗費了多少毫秒
Shard
_shards
部分 告訴我們在查詢中參與分片的總數,以及這些分片成功了多少個失敗了多少個。
timeout
timed_out
值告訴我們查詢是否超時。默認情況下,搜索請求不會超時。
3.6:使用curl刪除文檔
curl -XDELETE "http://hadoop01:9200/blog01/article/1"
3.7:使用curl刪除索引
curl -XDELETE "http://hadoop01:9200/blog01"