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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ES 分词

發布時間:2023/12/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES 分词 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 分詞
  • 分詞器
  • 分詞器構成
  • 指定分詞器
  • 內置分詞器

一 分詞

1、Analysis(分詞) 和 Analyzer(分詞器)

Analysis: 文本分析是把全文本轉換一系列單詞(term/token)的過程,也叫分詞。Analysis是通過Analyzer來實現的。

當一個文檔被索引時,每個Field都可能會創建一個倒排索引(Mapping可以設置不索引該Field)。
倒排索引的過程就是將文檔通過Analyzer分成一個一個的Term,每一個Term都指向包含這個Term的文檔集合。
當查詢query時,Elasticsearch會根據搜索類型決定是否對query進行analyze,然后和倒排索引中的term進行相關性查詢,匹配相應的文檔。

二 分詞器

  • 內置分詞器
  • 擴展分詞器
  • 分詞器查看命令

    POST _analyze {"analyzer": "standard","text": "Like X 國慶放假的" }

    運行結果

    三 分詞器構成

  • Character Filters:字符過濾器,針對原始文本進行處理,比如去除html標簽
  • Tokenizer:英文分詞可以根據空格將單詞分開,中文分詞比較復雜,可以采用機器學習算法來分詞。,將原始文本按照一定規則切分為單詞
  • Token Filters:針對Tokenizer處理的單詞進行再加工,比如轉小寫、刪除或增新等處理。將切分的單詞進行加工。大小寫轉換(例將“Quick”轉為小寫),去掉詞(例如停用詞像“a”、“and”、“the”等等),或者增加詞(例如同義詞像“jump”和“leap”)
  • 執行順序:

    Character Filters--->Tokenizer--->Token Filter

    三者個數:

    analyzer = CharFilters(0個或多個) + Tokenizer(恰好一個) + TokenFilters(0個或多個)

    四 指定分詞器

    創建索引時設置分詞器

    PUT new_index {"settings": {"analysis": {"analyzer": {"std_folded": {"type": "custom","tokenizer": "standard","filter": ["lowercase","asciifolding"]}}}},"mappings": {"properties": {"title": {"type": "text","analyzer": "std_folded" #指定分詞器},"content": {"type": "text","analyzer": "whitespace" #指定分詞器}}} }

    配置

    標準分析器接受下列參數:

    max_token_length : 最大token長度,默認255
    stopwords : 預定義的停止詞列表,如_english_或 包含停止詞列表的數組,默認是 none
    stopwords_path : 包含停止詞的文件路徑

    PUT new_index {"settings": {"analysis": {"analyzer": {"my_english_analyzer": {"type": "standard", #設置分詞器為standard"max_token_length": 5, #設置分詞最大為5"stopwords": "_english_" #設置過濾詞}}}} }

    五 內置分詞器

    分詞器說明
    Standard Analyzer默認分詞器
    Simple Analyzer簡單分詞器
    Whitespace Analyzer空格分詞器
    Stop Analyzer刪除停止詞的分詞器 is the
    Keyword Analyzer不分詞
    Pattern Analyzer正則分詞器
    Language Analyzers多語言特定的分析工具
    Fingerprint Analyzer指紋分詞器
    Custom analyzers自定義分詞器

    Standard Analyzer

    1、描述&特征:
    (1)默認分詞器,如果未指定,則使用該分詞器。
    (2)按詞切分,支持多語言
    (3)小寫處理,它刪除大多數標點符號、小寫術語,并支持刪除停止詞。
    2、組成:
    (1)Tokenizer:Standard Tokenizer
    (2)Token Filters:Lower Case Token Filter

    例:POST _analyze { "analyzer": "standard", "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } 上面的句子會產生下面的條件: [ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog's, bone ]

    Simple Analyzer

    1、描述&特征:
    (1)按照非字母切分,簡單分詞器在遇到不是字母的字符時將文本分解為術語
    (2)小寫處理,所有條款都是小寫的。
    2、組成:
    (1)Tokenizer:Lower Case Tokenizer

    例: POST _analyze { "analyzer": "simple", "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } 上面的句子會產生下面的條件: [ the, quick, brown, foxes, jumped, over, the, lazy, dog, s, bone ]

    Whitespace Analyzer

    1、描述&特征
    (1)空白字符作為分隔符,當遇到任何空白字符,空白分詞器將文本分成術語。
    2、組成:
    (1)Tokenizer:Whitespace Tokenizer

    例: POST _analyze { "analyzer": "whitespace", "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } 上面的句子會產生下面的條件: [ The, 2, QUICK, Brown-Foxes, jumped, over, the, lazy, dog's, bone. ]

    Stop Analyzer

    1、描述&特征:
    (1)類似于Simple Analyzer,但相比Simple Analyzer,支持刪除停止字
    (2)停用詞指語氣助詞等修飾性詞語,如the, an, 的, 這等
    2、組成 :
    (1)Tokenizer:Lower Case Tokenizer
    (2)Token Filters:Stop Token Filter

    例: POST _analyze { "analyzer": "stop", "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } 上面的句子會產生下面的條件: [ quick, brown, foxes, jumped, over, lazy, dog, s, bone ]

    Keyword Analyzer

    1、組成&特征:
    (1)不分詞,直接將輸入作為一個單詞輸出,它接受給定的任何文本,并輸出與單個術語完全相同的文本。
    2、組成:
    (1)Tokenizer:Keyword Tokenizer

    例: POST _analyze { "analyzer": "keyword", "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } 上面的句子會產生下面的條件: [ The 2 QUICK Brown-Foxes jumped over the lazy dog's bone. ]

    Pattern Analyzer

    模式分詞器使用正則表達式將文本拆分為術語。
    (1)通過正則表達式自定義分隔符
    (2)默認是\W+,即非字詞的符號作為分隔符

    Language Analyzers

    ElasticSearch提供許多語言特定的分析工具,如英語或法語。

    Fingerprint Analyzer

    指紋分詞器是一種專業的指紋分詞器,它可以創建一個指紋,用于重復檢測。

    Custom analyzers

    如果您找不到適合您需要的分詞器,您可以創建一個自定義分詞器,它結合了適當的字符過濾器、記號賦予器和記號過濾器。

    參考

    • https://www.jianshu.com/p/65bcac286012
    • https://www.cnblogs.com/qdhxhz/p/11585639.html

    總結

    以上是生活随笔為你收集整理的ES 分词的全部內容,希望文章能夠幫你解決所遇到的問題。

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