日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Elasticsearch---Analyzer(分析器)

發布時間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Elasticsearch---Analyzer(分析器) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Elasticsearch—Analyzer(分析器)


文章目錄

  • Elasticsearch---Analyzer(分析器)
  • 什么是Analyzer
    • 1 分析器的組成
      • 1.1 normalization(標準定義器)
      • 1.2 字符過濾器(character filter)
      • 1.3 令牌過濾器(token filter)
      • 1.4 分詞器(tokenizer):
    • 2 常見分析器:
      • 2.1 Standard Analyzer
      • 2.2 Simple Analyzer
      • 2.3 Stop Analyzer
      • 2.4 Pattern Analyzer
      • 2.5 Language Analyzers
      • 2.6 Whitespace Analyzer
      • 2.7 Keyword Analyzer
      • 2.8 Fingerprint Analyzer
      • 2.9自定義分析器:custom analyzer
      • 2.10 中文分析器
        • 2.10.1 IK Analyzer (使用頻率很高的,對搜索要求不高的建議選用)
        • 安裝和部署
        • IK文件描述
        • ik提供的兩種analyzer:
        • 熱更新
        • 2.10.2 Smart Chinese Analysis
        • 2.10.3 HanLP (推薦)
  • 總結

什么是Analyzer

一個標準的分析器Analyzer由兩部分組成,一部分是分詞器,被稱為Tokenizer;另一部分是過濾器,被稱為TokenFilter。一個分析器Analyzer往往由一個分詞器和多個過濾器組成。這里所說的過濾器,和檢索時用的過濾器是完全不同的兩個概念,這里所講的過濾器是用于對用戶切分出來的詞進行一些處理,如去掉一些敏感詞、停用詞、大小寫轉換、單復數轉換等等。

1 分析器的組成

1.1 normalization(標準定義器)

文檔規范化,提高召回率,是配合分析器(analyzer)完成其功能的。
拼寫錯誤、形容詞、單復數、動詞、大小寫、分詞、稱謂等轉換成標準詞匯

1.2 字符過濾器(character filter)

分詞之前的預處理,過濾無用字符,將原始文本作為字符流接收,并可以通過添加、刪除或更改字符來轉換流。比如去除 html 標簽

  • HTML Strip Character Filter: 剝離像<b>這樣的HTML元素,并解碼像&amp;這樣的HTML實體。
  • Mapping Character Filter:映射字符篩選器用指定的替換項替換任何出現的指定字符串。
  • Pattern Replace Character Filter:用指定的替換替換匹配正則表達式的任何字符。

1.3 令牌過濾器(token filter)

停用詞、時態轉換、大小寫轉換、同義詞轉換、語氣詞處理等。

1.4 分詞器(tokenizer):

切詞,按照規則切分為單詞,比如按照空格切分

2 常見分析器:

2.1 Standard Analyzer

組成:Standard Tokenizer、Lower Case Token Filter和Stop Token Filter (默認禁用)
默認分析器,按照Unicode文本分割算法所定義的詞邊界將文本拆分成若干詞項。它刪除大多數標點符號,小寫項,并支持刪除停止詞。
提供基于語法的標記,適用于大部分語言,但是對中文支持的不理想,會逐字拆分,按詞切分。

2.2 Simple Analyzer

組成:只有分詞器Lowercase Tokenizer而無過濾器
當遇到非字母的字符時,簡單分析器將文本拆分成若干詞項。所有項都是小寫的。

2.3 Stop Analyzer

組成:Lowercase Tokenizer和Stop Token Filter
和Simple Analyzer相比多了基于所提供的停用詞(stop word)過濾數據的功能,停用詞指語氣助詞等修飾性詞語。

2.4 Pattern Analyzer

組成:Pattern Tokenizer、Lowercase Token Filter和Stop Token Filter(默認禁用)
以正則匹配分隔符,把文本拆分成若干詞項,默認是\W+,即非字詞的符號作為分隔符。

2.5 Language Analyzers

組成:Stopwords、Excluding words from stemming和Reimplementing language analyzers
一組用于分析特定語言文本的分析器。 支持以下類型:阿拉伯語,亞美尼亞語,巴斯克語,孟加拉語,巴西語,保加利亞語,加泰羅尼亞語,cjk,捷克語,丹麥語,荷蘭語,英語,愛沙尼亞語,芬蘭語,法語,加利西亞語,德語,希臘語,印度語,匈牙利語,印度尼西亞語,愛爾蘭語,意大利語,拉脫維亞語,立陶宛語,挪威語,波斯語,葡萄牙語,羅馬尼亞語,俄羅斯,索拉尼語,西班牙語,瑞典語,土耳其語,泰國語。
以正則匹配詞項,速度比pattern tokenizer快。

2.6 Whitespace Analyzer

組成:Whitespace Tokenizer
在處理文本時以空格字符為區分進行分詞,該分詞器在中文分詞上基本不被使用

2.7 Keyword Analyzer

組成:Keyword Analyzer
不分詞,直接將輸入作為一個單詞輸出。

2.8 Fingerprint Analyzer

組成:Standard Tokenizer、Lower Case Token Filter、ASCII folding、Stop Token Filter (默認禁用)和Fingerprint
很特殊的一種分析器,輸入文本較低,規范化以刪除擴展字符,排序,重復數據刪除并連接到單個令牌。 如果配置了一個停用詞列表,停止單詞也將被刪除。

2.9自定義分析器:custom analyzer

當內置分析器不能滿足您的需求時,您可以創建一個custom分析器,它使用以下相應的組合:

  • 零個或多個字符過濾器
  • 一個分析器
  • 零個或多個token過濾器

分析器接受以下的參數:

  • char_filter:內置或自定義字符過濾器 。
  • token filter:內置或自定義token filter 。
  • tokenizer:內置或自定義分詞器。
  • position_increment_gap:在索引文本值數組時,Elasticsearch會在一個值的最后一個值和下一個值的第一個項之間插入假的“間隙”,以確保短語查詢與不同數組元素的兩個術語不匹配。 默認為100。

2.10 中文分析器

2.10.1 IK Analyzer (使用頻率很高的,對搜索要求不高的建議選用)

免費開源的java分詞器,目前比較流行的中文分詞器之一,簡單,穩定,想要特別好的效果,需要自行維護詞庫,支持自定義詞典。

  • 安裝和部署

    • ik下載地址:https://github.com/medcl/elasticsearch-analysis-ik
    • Github加速器:https://github.com/fhefh2015/Fast-GitHub
    • 創建插件文件夾 cd your-es-root/plugins/ && mkdir ik
    • 將插件解壓縮到文件夾 your-es-root/plugins/ik
    • 重新啟動es
  • IK文件描述

    • IKAnalyzer.cfg.xml:IK分詞配置文件
    • 主詞庫:main.dic
      • 英文停用詞:stopword.dic,不會建立在倒排索引中
      • 特殊詞庫:
        • quantifier.dic:特殊詞庫:計量單位等
        • suffix.dic:特殊詞庫:行政單位
        • surname.dic:特殊詞庫:百家姓
        • preposition:特殊詞庫:語氣詞
      • 自定義詞庫:網絡詞匯、流行詞、自造詞等
  • ik提供的兩種analyzer:

  • ik_max_word會將文本做最細粒度的拆分,比如會將“你是真的帥”拆分為“你是,真的,帥”,適合 Term Query;
  • ik_smart: 會做最粗粒度的拆分,比如會將“高達玩具”拆分為“高達,玩具”,適合 Phrase 查詢。
  • 熱更新

  • 遠程詞庫文件
  • 優點:簡單易用,支持自定義詞典和遠程詞典
  • 缺點:
  • 詞庫的管理不方便,要操作直接操作磁盤文件,檢索頁很麻煩,詞庫需要自行維護,不支持詞性識別
  • 文件的讀寫沒有專門的優化性能不好
  • 多一層接口調用和網絡傳輸
  • ik訪問數據庫
  • MySQL驅動版本兼容性
  • https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html
  • https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html
  • 驅動下載地址
  • https://mvnrepository.com/artifact/mysql/mysql-connector-java
  • 2.10.2 Smart Chinese Analysis

    官方提供的中文分析器,不好用

    2.10.3 HanLP (推薦)

    HanLP是一系列模型與算法組成的NLP工具包,由大快搜索主導并完全開源,目標是普及自然語言處理在生產環境中的應用。HanLP具備功能完善、性能高效、架構清晰、語料時新、可自定義的特點。

    總結

    本文寫到這里就結束了,后續博主會不定時更新文章,歡迎指正。

    著作權歸NoLongerConfused所有。商業轉載請聯系NoLongerConfused獲得授權,非商業轉載請注明出處。

    總結

    以上是生活随笔為你收集整理的Elasticsearch---Analyzer(分析器)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。