一,倒排索引
elasticsearch搜尋效能高的原因是因為底層的倒排索引技術。
倒排索引中的兩個重要概念:
- 文件(Document):用來搜尋的資料,其中的每一條資料就是一個文件,例如一個網頁,一個商品資訊。
- 詞條(Term):對文件資料或使用者搜尋資料,利用某種演算法分詞,得到的具備含義的語句就是詞條,例如:我是中國人,就可以分為:我,是,中國人,中國,國人這樣的詞條。
倒排索引:
1.先把文件內容進行分詞,形成詞條與文件id的對應關係,叫做詞條庫,詞條具備唯一性,建立索引。
2.對搜尋內容進行分詞,把分詞後得到的一個關鍵詞列表。,根據關鍵詞去詞條庫中匹配,再找到對應的文件id列表。
3.然後根據文件id列表,找到對應的文件資訊。
二,ES相關概念對比MySQL
MySQL | Elasticsearch | ES描述 |
---|---|---|
Table | Index | 索引 |
Row | Document | 文件【json】 |
Column | Filed | 欄位【域】 |
schema | Mapping | 對映【結構】 |
SQL | DSL | 語句 |
其中前三排的對比最為重要,一定要記好。