Lucene是如何理解文檔的數據庫
在Lucene中,一份文檔(Document)由一系列簡單的字段-值(field-value)對組成。一個字段必須有值,同時容許包含多值。一樣的,一個單一的字符串在分析處理過程當中可能被轉換成多個值。Lucene不關心值究竟是字符串、數字仍是日期——全部的值都以不可理解的比特值(opaque)對待。app
當咱們在Lucene中索引一份文檔時,值和字段在反向索引(inverted index)中被關聯起來。可選項的是,是否將原始值存儲起來以便從此使用,存儲後的值是不可更改的。索引
文檔類型(Types)是如何被實現的文檔
Elasticsearch的類型實如今簡單的基礎設施之上。一個索引可能存在多種類型,每種類型都有本身的mapping(類型數據庫的schema)。同時同一類型下的每份文檔都被存儲在相同的索引裏。字符串
因爲Lucene沒有文檔類型的概念,文檔的類型名被存儲在文檔的一個被稱爲_type的元數據中。當咱們在搜索某種類型的文檔,Elasticsearch只是簡單地使用該類型的值在_type字段上進行過濾。ast
Lucene也沒有mapping的概念。Mapping是Elasticsearch的一個層,將複雜的JSON文檔映射到Lucene能處理的簡單的扁平的文檔。基礎