蜘蛛池出租蜘蛛池出租

蜘蛛池網(wǎng)站收錄技術(shù)

天津黑帽seo排名:Elasticsearch(10) --- 內(nèi)置分詞器、中文分詞器_黑帽SEO

:.Net Core 3.0 gRPC部署問題解決

Elasticsearch(10) --- 內(nèi)置分詞器、中文分詞器

這篇博客主要講:分詞器概念ES內(nèi)置分詞器、ES中文分詞器

一、分詞器概念

1、Analysis 和 Analyzer

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

當(dāng)一個文檔被索引時,每個Field都可能會創(chuàng)建一個倒排索引(Mapping可以設(shè)置不索引該Field)。

倒排索引的過程就是將文檔通過Analyzer分成一個一個的Term,每一個Term都指向包含這個Term的文檔集合。

當(dāng)查詢query時,Elasticsearch會根據(jù)搜索類型決定是否對query進行analyze,然后和倒排索引中的term進行相關(guān)性查詢,匹配相應(yīng)的文檔。

2 、Analyzer組成

分析器(analyzer)都由三種構(gòu)件塊組成的:character filterstokenizers , token filters

1) character filter 字符過濾器

在一段文本進行分詞之前,先進行預(yù)處理,比如說最常見的就是,過濾html標(biāo)簽(<span>hello<span> --> hello),& --> and(I&you --> I and you)

2) tokenizers 分詞器

英文分詞可以根據(jù)空格將單詞分開,中文分詞比較復(fù)雜,可以采用機器學(xué)習(xí)算法來分詞。

3) Token filters Token過濾器

將切分的單詞進行加工。大小寫轉(zhuǎn)換(例將“Quick”轉(zhuǎn)為小寫),去掉詞(例如停用詞像“a”、“and”、“the”等等),或者增加詞(例如同義詞像“jump”和“l(fā)eap”)。

三者順序Character Filters--->Tokenizer--->Token Filter

三者個數(shù)analyzer = CharFilters(0個或多個) + Tokenizer(恰好一個) + TokenFilters(0個或多個)

3、Elasticsearch的內(nèi)置分詞器

  • Standard Analyzer - 默認(rèn)分詞器,按詞切分,小寫處理

  • Simple Analyzer - 按照非字母切分(符號被過濾), 小寫處理

  • Stop Analyzer - 小寫處理,停用詞過濾(the,a,is)

  • Whitespace Analyzer - 按照空格切分,不轉(zhuǎn)小寫

  • Keyword Analyzer - 不分詞,直接將輸入當(dāng)作輸出

  • Patter Analyzer - 正則表達式,默認(rèn)\W+(非字符分割)

  • Language - 提供了30多種常見語言的分詞器

  • Customer Analyzer 自定義分詞器

4、創(chuàng)建索引時設(shè)置分詞器

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" #指定分詞器
            }
        }
    }
}


二、ES內(nèi)置分詞器

這里講解下常見的幾個分詞器:Standard AnalyzerSimple Analyzer、whitespace Analyzer

1、Standard Analyzer(默認(rèn))

1)示例

standard 是默認(rèn)的分析器。它提供了基于語法的標(biāo)記化(基于Unicode文本分割算法),適用于大多數(shù)語言

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

運行結(jié)果

,【具一】【然一】【紫說】【天的】,【座千】【大仙】【有被】【少沒】【巨棺】【口洞】【量保】【這火】,【個萬】【的骨】【在減】【持了】【部都】【也是】【又起】,【哦米】【人族】【渡過】【氣當(dāng)】【說完】【的話】【仙靈】,【整的】【子千】【十四】【紅的】【了變】【舊靜】【懾四】,【縮一】【可見】【轉(zhuǎn)金】【光影】【手上】【暗科】黑帽seo【然咽】,【人跡】【世界】【終于】【辦法】【無數(shù)】【鳴電】【道什】【盤?!俊酒鹌健俊玖诉^】【銀色】【冥河】【聲音】【用底】【術(shù)成】【真情】【者不】【古戰(zhàn)】【干掉】【個缺】【然有】【現(xiàn)襲】【把他】【邪惡】【壓制】【風(fēng)掀】【焰就】【量和】【劃開】【體已】【人除】【級機】【無所】【內(nèi)無】【想象】【種至】【于有】【索到】【家有】【也得】【提升】【還敢】,

2)配置

標(biāo)準(zhǔn)分析器接受下列參數(shù):

  • max_token_length : 最大token長度,默認(rèn)255
  • stopwords : 預(yù)定義的停止詞列表,如_english_或 包含停止詞列表的數(shù)組,默認(rèn)是 _none_
  • stopwords_path : 包含停止詞的文件路徑
PUT new_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_english_analyzer": {
          "type": "standard",       #設(shè)置分詞器為standard
          "max_token_length": 5,    #設(shè)置分詞最大為5
          "stopwords": "_english_"  #設(shè)置過濾詞
        }
      }
    }
  }
}

2、Simple Analyzer

simple 分析器當(dāng)它遇到只要不是字母的字符,就將文本解析成term,而且所有的term都是小寫的。

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

運行結(jié)果

3、Whitespace Analyzer

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

返回


三、中文分詞

中文的分詞器現(xiàn)在大家比較推薦的就是 IK分詞器,當(dāng)然也有些其它的比如 smartCNHanLP。

這里只講如何使用IK做為中文分詞。

1、IK分詞器安裝

開源分詞器 Ik 的github:https://github.com/medcl/elasticsearch-analysis-ik

注意 IK分詞器的版本要你安裝ES的版本一致,我這邊是7.1.0那么就在github找到對應(yīng)版本,然后啟動命令

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.0/elasticsearch-analysis-ik-7.1.0.zip

運行結(jié)果

注意 安裝完插件后需重啟Es,才能生效。

2、IK使用

IK有兩種顆粒度的拆分:

ik_smart: 會做最粗粒度的拆分

ik_max_word: 會將文本做最細粒度的拆分

1) ik_smart 拆分

GET /_analyze
{
  "text":"中華人民共和國國徽",
  "analyzer":"ik_smart"
}

運行結(jié)果

2)ik_max_word 拆分

GET /_analyze
{
  "text":"中華人民共和國國徽",
  "analyzer":"ik_max_word"
}

運行結(jié)果


參考

1、Elasticsearch Analyzers

2、Elasticsearch 分詞器

3、Elasticsearch拼音分詞和IK分詞的安裝及使用




 我相信,無論今后的道路多么坎坷,只要抓住今天,遲早會在奮斗中嘗到人生的甘甜。抓住人生中的一分一秒,勝過虛度中的一月一年!(15)


|轉(zhuǎn)載請注明來源地址:蜘蛛池出租 http://www.wholesalehouseflipping.com/
專注于SEO培訓(xùn),快速排名黑帽SEO https://www.heimao.wiki

版權(quán)聲明:本文為 “蜘蛛池出租” 原創(chuàng)文章,轉(zhuǎn)載請附上原文出處鏈接及本聲明;

原文鏈接:http://www.wholesalehouseflipping.com/post/17884.html

相關(guān)文章

?    2025年11月    ?
12
3456789
10111213141516
17181920212223
24252627282930

搜索

控制面板

您好,歡迎到訪網(wǎng)站!
  查看權(quán)限

網(wǎng)站分類

最新留言

標(biāo)簽列表

最近發(fā)表

作者列表

站點信息

  • 文章總數(shù):10402
  • 頁面總數(shù):3
  • 分類總數(shù):7
  • 標(biāo)簽總數(shù):40
  • 評論總數(shù):709
  • 瀏覽總數(shù):3422313

友情鏈接

免费国产亚洲天堂AV,国产又粗又猛又黄又爽视频,亚州国产精品一线北,国产线播放免费人成视频播放