Elasticsearch之 倒排索引

2022-01-20 22:20:54 字數 715 閱讀 5461

一、倒排索引是什麼

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 基本所有操作 索引 查詢 甚至是配置 都可以...