鍍金池/ 教程/ Java/ 什么是文檔?
創(chuàng)建索引
文檔局部更新
映射
查詢與過濾條件的合并
取回階段
查詢地理形狀
相關(guān)性簡介
動態(tài)索引
處理沖突
geohash單元聚合器
主分片和復(fù)制分片如何交互
自定義分析器
下一步
過濾順序
空集群
數(shù)據(jù)吞吐
地理坐標(biāo)點
嵌套-映射
動態(tài)映射
在查詢中使用已索引的形狀
局部更新文檔
包含,而不是相等
范圍
檢索文檔
映射及分析
結(jié)語
結(jié)構(gòu)化查詢 Query DSL
驗證查詢
查找準(zhǔn)確值
Geohashes
結(jié)構(gòu)化搜索
復(fù)合核心字段類型
嵌套-集合
與Elasticsearch交互
請求體查詢
自定義動態(tài)索引
簡易搜索
索引一個文檔
地理形狀
緩存地理位置過濾器
多文檔模式
  • 1.
分布式搜索的執(zhí)行方式
安裝Elasticsearch
地理位置聚合
分析和分析器
元數(shù)據(jù):_all 字段
地理坐標(biāo)盒模型過濾器
類型和映射
合并段
查詢多個準(zhǔn)確值
嵌套-查詢
  • 1.
為什么是奇怪的格式?
Geohashes 映射
關(guān)于緩存
開始第一步
為了搜索,你懂的
分布式的特性
添加索引
確切值(Exact values) vs. 全文文本(Full text)
掃描和滾屏
相關(guān)性排序
教程小結(jié)
數(shù)據(jù)字段
增加故障轉(zhuǎn)移
按距離排序
索引管理
分布式文檔存儲
geohash單元過濾器
嵌套排序
檢索多個文檔
新建、索引和刪除文檔
Geohashes
檢索文檔
減少內(nèi)存占用
重新索引數(shù)據(jù)
檢索文檔
按距離聚合
什么是文檔?
繼續(xù)擴(kuò)展
集群健康
入門
映射(mapping)
近實時搜索
地理形狀的過濾與緩存
集群內(nèi)部工作方式
應(yīng)對故障
范圍(邊界)聚合器
分析
分頁
刪除文檔
倒排索引
索引地理形狀
嵌套-對象
  • 1.
橫向擴(kuò)展
查詢階段
元數(shù)據(jù):_source 字段
多索引和多類別
路由文檔到分片
索引設(shè)置
williamzhao
多值字段字符串排序
創(chuàng)建一個新文檔
配置分析器
地理形狀
更新整個文檔
面向文檔
處理 Null 值
映射地理形狀
使文本可以被搜索
索引別名和零停機時間
通過地理坐標(biāo)點過濾
地理距離過濾器
搜索——基本的工具
空搜索
搜索選項
更新時的批量操作
最重要的查詢過濾語句
結(jié)語
組合過濾
地理位置聚合
根對象
默認(rèn)映射
文檔 ID
持久化變更
檢查文檔是否存在
入門
地理坐標(biāo)點

什么是文檔?

什么是文檔?

程序中大多的實體或?qū)ο竽軌虮恍蛄谢癁榘I值對的JSON對象,鍵(key)字段(field)屬性(property)的名字,值(value)可以是字符串、數(shù)字、布爾類型、另一個對象、值數(shù)組或者其他特殊類型,比如表示日期的字符串或者表示地理位置的對象。

{
    "name":         "John Smith",
    "age":          42,
    "confirmed":    true,
    "join_date":    "2014-06-01",
    "home": {
        "lat":      51.5,
        "lon":      0.1
    },
    "accounts": [
        {
            "type": "facebook",
            "id":   "johnsmith"
        },
        {
            "type": "twitter",
            "id":   "johnsmith"
        }
    ]
}

通常,我們可以認(rèn)為對象(object)文檔(document)是等價相通的。不過,他們還是有所差別:對象(Object)是一個JSON結(jié)構(gòu)體——類似于哈希、hashmap、字典或者關(guān)聯(lián)數(shù)組;對象(Object)中還可能包含其他對象(Object)。 在Elasticsearch中,文檔(document)這個術(shù)語有著特殊含義。它特指最頂層結(jié)構(gòu)或者根對象(root object)序列化成的JSON數(shù)據(jù)(以唯一ID標(biāo)識并存儲于Elasticsearch中)。

文檔元數(shù)據(jù)

一個文檔不只有數(shù)據(jù)。它還包含了元數(shù)據(jù)(metadata)——關(guān)于文檔的信息。三個必須的元數(shù)據(jù)節(jié)點是:

節(jié)點 說明
_index 文檔存儲的地方
_type 文檔代表的對象的類
_id 文檔的唯一標(biāo)識

_index

索引(index)類似于關(guān)系型數(shù)據(jù)庫里的“數(shù)據(jù)庫”——它是我們存儲和索引關(guān)聯(lián)數(shù)據(jù)的地方。

提示:

事實上,我們的數(shù)據(jù)被存儲和索引在分片(shards)中,索引只是一個把一個或多個分片分組在一起的邏輯空間。然而,這只是一些內(nèi)部細(xì)節(jié)——我們的程序完全不用關(guān)心分片。對于我們的程序而言,文檔存儲在索引(index)中。剩下的細(xì)節(jié)由Elasticsearch關(guān)心既可。

我們將會在《索引管理》章節(jié)中探討如何創(chuàng)建并管理索引,但現(xiàn)在,我們將讓Elasticsearch為我們創(chuàng)建索引。我們唯一需要做的僅僅是選擇一個索引名。這個名字必須是全部小寫,不能以下劃線開頭,不能包含逗號。讓我們使用website做為索引名。

_type

在應(yīng)用中,我們使用對象表示一些“事物”,例如一個用戶、一篇博客、一個評論,或者一封郵件。每個對象都屬于一個類(class),這個類定義了屬性或與對象關(guān)聯(lián)的數(shù)據(jù)。user類的對象可能包含姓名、性別、年齡和Email地址。

在關(guān)系型數(shù)據(jù)庫中,我們經(jīng)常將相同類的對象存儲在一個表里,因為它們有著相同的結(jié)構(gòu)。同理,在Elasticsearch中,我們使用相同類型(type)的文檔表示相同的“事物”,因為他們的數(shù)據(jù)結(jié)構(gòu)也是相同的。

每個類型(type)都有自己的映射(mapping)或者結(jié)構(gòu)定義,就像傳統(tǒng)數(shù)據(jù)庫表中的列一樣。所有類型下的文檔被存儲在同一個索引下,但是類型的映射(mapping)會告訴Elasticsearch不同的文檔如何被索引。 我們將會在《映射》章節(jié)探討如何定義和管理映射,但是現(xiàn)在我們將依賴Elasticsearch去自動處理數(shù)據(jù)結(jié)構(gòu)。

_type的名字可以是大寫或小寫,不能包含下劃線或逗號。我們將使用blog做為類型名。

_id

id僅僅是一個字符串,它與_index_type組合時,就可以在Elasticsearch中唯一標(biāo)識一個文檔。當(dāng)創(chuàng)建一個文檔,你可以自定義_id,也可以讓Elasticsearch幫你自動生成。

其它元數(shù)據(jù)

還有一些其它的元數(shù)據(jù),我們將在《映射》章節(jié)探討。使用上面提到的元素,我們已經(jīng)可以在Elasticsearch中存儲文檔并通過ID檢索——換言說,把Elasticsearch做為文檔存儲器使用了。

上一篇:映射及分析下一篇:分布式的特性