倒排索引的核心組成
- 單詞詞典:記錄所有文檔的單詞,記錄單詞到倒排列表的關聯關係
- 倒排列表記錄了單詞對應的文檔組合,由倒排索引項組成
倒排索引項:
- 文檔ID
- 詞頻TF :該單詞在文檔中出現的次數,用於相關性評分
- 位置:單詞在文檔中分詞的位置,用於語句搜索
- 偏移:記錄單詞的開始結束位置,實現高亮顯示
elasticsearch的json文檔中的每個字段,都有自己的倒排索引;可以指定對某些字段不做索引,可節省存儲空間,但字段無法被搜索。
Analysis
- Analysis :文本分析是把全文本轉換成一系列單詞(term/token)的過程,也叫分詞
- Analysis是通過Analyzer(分詞器)來實現的。es有內置的分析器,也可以自定製分析器
- 除了在數據寫入時轉換詞條,匹配Query語句時也需要用相同的分析器對查詢語句進行分析。
Analyzer的組成
- character filters: 針對原始文本處理
- tokenizer:按照規則將文本切分爲單詞
- token filter:將切分的單詞進行加工、轉爲小寫、刪除stopwords、增加同義詞