程式中大多的實體或物件能夠被序列化為包含鍵值對的json物件,鍵(key)是字段(field)或屬性(property)的名字,值(value)可以是字串、數字、布林型別、另乙個物件、值陣列或者其他特殊型別,比如表示日期的字串或者表示地理位置的物件。
,
"accounts": [,]
}
通常,我們可以認為物件(object)和文件(document)是等價相通的。不過,他們還是有所差別:物件(object)是乙個json結構體——類似於雜湊、hashmap、字典或者關聯陣列;物件(object)中還可能包含其他物件(object)。 在elasticsearch中,文件(document)這個術語有著特殊含義。它特指最頂層結構或者根物件(root object)序列化成的json資料(以唯一id標識並儲存於elasticsearch中)。
乙個文件不只有資料。它還包含了元資料(metadata)——關於文件的資訊。三個必須的元資料節點是:
節點說明
_index
文件儲存的地方
_type
文件代表的物件的類
_id
文件的唯一標識
索引(index)類似於關係型資料庫裡的「資料庫」——它是我們儲存和索引關聯資料的地方。
事實上,我們的資料被儲存和索引在分片(shards)中,索引只是乙個把乙個或多個分片分組在一起的邏輯空間。然而,這只是一些內部細節——我們的程式完全不用關心分片。對於我們的程式而言,文件儲存在索引(index)中。剩下的細節由elasticsearch關心既可。
我們將會在《索引管理》章節中**如何建立並管理索引,但現在,我們將讓elasticsearch為我們建立索引。我們唯一需要做的僅僅是選擇乙個索引名。這個名字必須是全部小寫,不能以下劃線開頭,不能包含逗號。讓我們使用website
做為索引名。
在關係型資料庫中,我們經常將相同類的物件儲存在乙個表裡,因為它們有著相同的結構。同理,在elasticsearch中,我們使用相同型別(type)的文件表示相同的「事物」,因為他們的資料結構也是相同的。
_type
的名字可以是大寫或小寫,不能包含下劃線或逗號。我們將使用blog
做為型別名。
id僅僅是乙個字串,它與_index
和_type
組合時,就可以在elasticsearch中唯一標識乙個文件。當建立乙個文件,你可以自定義_id
,也可以讓elasticsearch幫你自動生成。
還有一些其它的元資料,我們將在《對映》章節**。使用上面提到的元素,我們已經可以在elasticsearch中儲存文件並通過id檢索——換言說,把elasticsearch做為文件儲存器使用了
ElasticSearch 檢索文件
現在elasticsearch中已經儲存了一些資料,我們可以根據業務需求開始工作了。第乙個需求是能夠檢索單個員工的資訊。這對於elasticsearch來說非常簡單。我們只要執行http get請求並指出文件的 位址 索引 型別和id既可。根據這三部分資訊,我們就可以返回原始json文件 檢索命令如...
Elasticsearch 文件操作
1.elasticserach api 操作 elasticsearch rest api遵循的格式為 curl x 檢查es版本資訊 http ip 9200 檢視集群是否健康 http ip 9200 cat health?v 檢視節點列表 http ip 9200 cat nodes?v 列出...
ElasticSearch 文件儲存
確定shard的公式 shard hash routing number of primary shardsrouting 預設是文件的 id 也可以設定成乙個自定義的值。因此要在建立索引的時候就確定好主分片的數量,並且永遠不會改變這個數量,因為如果數量變化了,那麼所有之前路由的值都會無效。每個節點...