Elasticsearch版本:6.0一、文檔一個文檔不僅包含數據,也包含元數據,三個必須的元數據如下_index:具有共同特性分到一起的文檔集合,標示了文檔的存放位置; 名字小寫,不以下劃線開頭,不包含逗號。_type:表示文檔的類型,在索引中對數據進行邏輯分區; 名字大寫或小寫,不以下劃線或句號... ...
Elasticsearch版本:6.0
一、文檔
一個文檔不僅包含數據,也包含元數據,三個必須的元數據如下
_index:具有共同特性分到一起的文檔集合,標示了文檔的存放位置;
名字小寫,不以下劃線開頭,不包含逗號。
_type:表示文檔的類型,在索引中對數據進行邏輯分區;
名字大寫或小寫,不以下劃線或句號開頭,不包含逗號,並且長度限制256個字元。
_id:文檔的唯一標識,和_index和_type組合可以唯一確定Elasticsearch中的一個文檔;
可以自定義id值,或者由Elasticsearch來生成。
二、Rest風格
PUT /{index}/{type}/{id}{"field": "value"}POST:創建,不指定id時,Elasticsearch自動生成id,指定id時,如果文檔存在,會返回409 Conflict;
PUT:可以創建/更新文檔,更新時,舊文檔被標記為刪除,增加新文檔,Elasticsearch後臺清理這些標記刪除的文檔;
GET:搜索文檔;
DELETE:刪除文檔,實際上是在.del文件中被標記刪除,被刪除的文檔仍然可以被查詢匹配到,但是它會在最終結果被返回前從結果集移除,更新操作類似;
部分更新文檔
使用PUT整個更新文檔時,需要檢索並修改,再重新索引整個文檔,而使用update API可以部分更行文檔,需要用POST /_update操作,實際上它在內部依然進行了檢索-修改-重建索引的過程,但是這個過程是發生在分片內部的,避免多次請求的網路開銷。
三、搜索結果
1、hits:包含total欄位表示匹配到的文檔總數;
包含_index、_type、_id、_source欄位,標記整個文檔信息;
_score欄位表示文檔和查詢的匹配程度,搜索結果預設按照_score降序排序;
max_score是_score的最大值;
2、took:執行整個搜索消耗了多少毫秒;
3、_shards:查詢中參與分片的總數,以及分別成功和失敗了多少個;
4、timed_out:查詢是否超時true/false;
Elasticsearch預設查詢分頁,預設返回十條數據,可以指定分頁參數
size:返回的結果數量,預設10
from:頁數,預設0
分頁的問題
Elasticsearch是分散式的,分頁時會從各個分片產生結果集,最後彙總到協調節點重新排序獲得結果集,對多餘的結果進行拋棄,所以一般查詢不要超過1000個結果。