一、倒排索引是什麼
es中用到了倒排索引,啥叫倒排索引呢,一般查詢都是根據索引值來查詢屬性,倒排索引實際應用中需要根據屬性值來查詢記錄,這種索引表中的每乙個項都包括乙個屬性值和該屬性值的記錄位址。由於不是由記錄位置來確定屬性值,而是由屬性值來確定記錄的位置,因而成為倒排索引。帶有倒排索引的檔案我們稱之為倒排索引檔案,簡稱倒排檔案。
二、舉例
在儲存檔案之前,先對檔案進行分析,將檔案分詞,對分詞建立索引,例如下面一句話 (分好的詞就類似於屬性值,建立的索引就相當於屬性值位置記錄)
今天是星期天我們出去玩
文章今天
文章1,文章3
星期天文章2
出去玩文章5,文章1
實際上es在做儲存的時候,更詳細(記錄出現的在哪個文章,出現的位置和次數)
文章今天
(文章1,<2,10>,2) (文章1,<8>,1)
星期天(文章2,<12,25,100>,3)
出去玩(文章5,<11,24,89>,3)(文章1,<8,19>,2)
三、倒排索引待解決的問題
1.大小寫轉換問題
2.詞幹抽取 looking和look應該處理為同乙個詞
3.分詞處理
4.倒排索引檔案過大,需要壓縮編碼
Elasticsearch 之全文檢索與倒排索引
elasticsearch 是一種高度可伸縮的全文檢索和分析引擎,其底層基於 apache lucene,lucene 本身早就是一種聞名於世的全文檢索和工具包。elasticsearch 在其基礎上進行了封裝,不僅繼承了 lucene 的所有優點,還大大降低了使用和開發的複雜度。不僅如此,es 也...
elasticsearch之mapping中元屬性
1.1 all是乙個特殊的字段,它把其他欄位的值用空格分開,作為乙個大string,進行檢索,預設不會對該字段進行單獨儲存。該欄位通常用於搜尋並不知道該值是否存在文件中,類似迷糊搜尋。例如下面的例子 搜尋包含johe smith 1970任何其中乙個的文件。get my index search 注...
全文搜尋之 Elasticsearch
elasticsearch es 是乙個基於 lucene 的開源搜尋引擎,它不但穩定 可靠 快速,而且也具有良好的水平擴充套件能力,是專門為分布式環境設計的。json 輸入 輸出格式為 json,意味著不需要定義 schema,快捷方便 restful 基本所有操作 索引 查詢 甚至是配置 都可以...