elasticsearch 分詞

analysis

分析是將文本 text 轉化爲 token 或 term 的過程。token 或 term 隨後被添加至倒排索引(inverted index)用於檢索。分析(analysis)過程是由分詞器(analyzer)來完成的,分詞器包括內置(built-in)分詞器和自定義(cutsom)分詞器。
分析(analysis)可以在以下兩種情況下發生:

  1. index time
  2. search time

analyzer (分詞器)

一個分詞器由以下三部分組成,內置分詞器主要是爲了適應特定語言和文本類型,打包了不同組合的組件,組成了若干種預置分詞器。以下組件還能單獨暴露,自由組合成自定義分詞器。

  1. character filters

    • 以字符流的形式接收原始文本,增加、刪除或修改字符,例如:剝離html標籤,轉換 (٠‎١٢٣٤٥٦٧٨‎٩‎) 爲阿拉伯數字 (0123456789) 等。
    • 一個分詞器可以包含0到多個character filters
  2. tokenizers
  • 以字符流的形式接收文本,將它拆分成單個的 token (英文單詞、中文單字或詞語),輸出 token stream (分詞流)。
  • tokenizer 還負責記錄每個分詞的位置順序,每個分詞的首末字母的偏移量(offsets)
  • 一個分詞器有且僅有一個 tokenizer
  1. token filters
  • 以 token stream (分詞流)的形式接收文本,增加、刪除或修改分詞,例如:單詞大寫轉爲小寫,去除英文停用詞 the,同義詞 synonym 替換等操作
  • token filter 不修改分詞的位置(position)和字符偏移量(character offsets)
  • 一個分詞器可以包含0到多個token filters
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章