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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象

發(fā)布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Elasticsearch 系列回來了,先給因為這個系列關(guān)注我的同學說聲抱歉,拖了這么久才回來,這個系列雖然叫「Elasticsearch 從入門到放棄」,但只有三篇就放棄還是有點過分的,所以還是回來繼續(xù)更新。

之前我們聊過了 Elasticsearch 的索引和文檔,不太熟悉的話可以先翻閱一下前文。今天再一起聊一下 Elasticsearch 的分詞器。

關(guān)于分詞

如果你是講 Elasticsearch 作為搜索引擎,那么你應(yīng)該需要對分詞進行了解,Elasticsearch 的分詞是將全文本轉(zhuǎn)換為一系列單詞,這樣有助于在搜索時得到相關(guān)的結(jié)果以及相關(guān)性分析。例如我們有一個文本為“I love Elasticsearch”,然后 Elasticsearch 可以將其分解為三個單詞,這時我們無論搜索哪個單詞,都能搜到這個文本。

Elasticsearch 通過分詞器對文本進行分詞處理,Elasticsearch 的分詞器是由 Character Filters、Tokenizer 和Token Filter 三部分組成。在介紹它們之前,我們先來簡單了解一下 Analyze API,它可以幫助我們快速測試一個 Analyzer 的作用,它的用法也非常簡單:

GET /_analyze {"analyzer" : "standard","text" : "Quick Brown Foxes!" }

其中,analyzer 是指定的分詞器,text 是被測試的文本,這樣就能得到這個文本分詞后的效果。

這是最簡單的一種用法,此外,我們還可以在 path 中指定 index,用于測試指定索引中 mapping 設(shè)置的 analyzer 或者索引默認的 analyzer。當然,你也可以測試一下自定義的 analyzer,只需要在參數(shù)中設(shè)置好 Character Filters、Tokenizer 和Token Filter 即可。關(guān)于 Analyze API 更多的使用方法可以自行查閱官方文檔 Analyze API

內(nèi)置 Analyzer

為了方便使用,Elasticsearch 為我們提供了幾種內(nèi)置 Analyzer:

  • Fingerprint:它可以將文本處理為小寫的、去除擴展的、有序的、唯一的單詞
  • Keyword:不分詞
  • Language:提供了30多種常見語言的分詞器
  • Pattern:使用正則表達式分詞,默認W+(非字符分隔)
  • Simple:按照非字母切分,小寫處理
  • Standard:默認分詞器,會基于 Unicode 文本語法,按照單詞劃分,并進行小寫處理
  • Stop:小寫處理,過濾停用詞(the, a, is)
  • Whitespace:按照空格切分,不轉(zhuǎn)小寫

現(xiàn)在我們來測試一下 Whitespace Analyzer

GET _analyze {"analyzer": "whitespace","text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." }

它的執(zhí)行結(jié)果是

{"tokens" : [{"token" : "The","start_offset" : 0,"end_offset" : 3,"type" : "word","position" : 0},{"token" : "2","start_offset" : 4,"end_offset" : 5,"type" : "word","position" : 1},{"token" : "QUICK","start_offset" : 6,"end_offset" : 11,"type" : "word","position" : 2},{"token" : "Brown-Foxes","start_offset" : 12,"end_offset" : 23,"type" : "word","position" : 3},{"token" : "jumped","start_offset" : 24,"end_offset" : 30,"type" : "word","position" : 4},{"token" : "over","start_offset" : 31,"end_offset" : 35,"type" : "word","position" : 5},{"token" : "the","start_offset" : 36,"end_offset" : 39,"type" : "word","position" : 6},{"token" : "lazy","start_offset" : 40,"end_offset" : 44,"type" : "word","position" : 7},{"token" : "dog's","start_offset" : 45,"end_offset" : 50,"type" : "word","position" : 8},{"token" : "bone.","start_offset" : 51,"end_offset" : 56,"type" : "word","position" : 9}] }

如果有興趣,可以自行測試一下其他的內(nèi)置 Analyzer。除了內(nèi)置的 Analyzer 之外,你也可以根據(jù)需要自定義分詞器。

下面我們來看怎么定義我們需要的 Analyzer。

前面提到 Analyzer 由三部分組成,其中 Character Filters 用于對原始文本進行處理(例如去掉html標簽),Tokenizer 是按照指定規(guī)則進行切分,Token Filter 負責將切分的單詞進行加工(例如轉(zhuǎn)小寫)。

Character Filters

Character Filters 是分詞的第一步,Elasticsearch 用它來對原始文本進行一些處理。內(nèi)置的 Character Filters 有三個,分別是:

  • HTML strip:使用解碼值替換HTML標簽
  • Mapping:使用指定的替換項替換指定的字符串
  • Pattern replace:使用指定的替換項替換正則匹配的字符串

HTML strip 默認會替換文本中所有的 HTML 標簽,你也可以通過設(shè)置escaped_tags,將一些特定的標簽排除

PUT my_index {"settings": {"analysis": {"analyzer": {"my_analyzer": {"tokenizer": "keyword","char_filter": ["my_custom_html_strip_char_filter"]}},"char_filter": {"my_custom_html_strip_char_filter": {"type": "html_strip","escaped_tags": ["b"]}}}} }

這個自定義 Analyzer 就不會替換標簽 b。

Tokenizer

在對原始文本進行初步的處理之后,Tokenizer 就要上場了,它幫助我們根據(jù)指定的規(guī)則進行分詞,Elasticsearch 同樣提供了一些內(nèi)置的 Tokenizer。

  • Character group:按照配置的字符組進行切分
  • Classic:針對英語語法進行分詞
  • Edge n-gram:從單詞的起始字符開始按長度依次切分quick 會被分為[q, qu, qui, quic, quick]
  • Keyword:不切分
  • Letter:遇到非字母的字符進行切分
  • Lowercase:與類似 Letter 類似,不過它會把切分后的單詞轉(zhuǎn)為小寫
  • N-gram:把單詞切分為指定長度的字符串集合,quick 會被分為[qu, ui, ic, ck]
  • Path hierarchy:對路徑進行切分,/foo/bar/baz 會分為[/foo, /foo/bar, /foo/bar/baz]
  • Pattern:根據(jù)正則匹配進行切分
  • Simple pattern:正則會受到一些限制,但不支持按照匹配到的分割符切分
  • Simple pattern split:是支持按照匹配到的分割符切分的Simple pattern
  • Standard:按照單詞進行切分
  • Thai:針對泰語進行切分
  • UAX URL email:與 Standard 相似,但它會把 url 或郵箱當作一個整體
  • Whitespace:按照空格進行切分

在這里你可以先對這些內(nèi)置的 Tokenizer 有個初步的了解,知道它們能干什么,在具體使用的時候可以查閱官方文檔進行更詳細的了解,很多 Tokenizer 還支持一些參數(shù)配置,這些到實際場景中靈活使用就好。

Token Filter

Elasticsearch 內(nèi)置的 Token Filter 非常多,這里列幾個常用的吧:

  • Trim:刪除前后空格
  • Uppercase:轉(zhuǎn)大寫
  • Lowercase:轉(zhuǎn)小寫
  • Stop:停用詞過濾
  • ……

Elasticsearch 中內(nèi)置的這些分詞器及組件可以滿足我們?nèi)粘5拇蟛糠中枨罅?#xff0c;能夠做到靈活應(yīng)用就很厲害了。如果真的遇到解決不了的問題,你也可以嘗試自定義分詞器,例如對我們的中文進行分詞。

中文分詞

中文分詞的難點在于,它不像英文那樣有天然的空格可以進行切分,我們也不能簡單的把它分成一個個的字,而是要分成有意義的詞。

比較不錯的中文分詞器有 ICU Analyzer、IK 和 THULAC

ICU Analyzer

ICU Analyzer 并不是 Elasticsearch 內(nèi)置的分詞器,所以我們需要預(yù)先安裝插件才能使用

執(zhí)行命令

elasticsearch-plugin install analysis-icu

進行安裝,安裝好以后可以使用命令elasticsearch-plugin list進行查看。

安裝好之后就可以運行下面這個例子

GET _analyze {"analyzer": "standard", "text": "覺得好看就點贊" }GET _analyze {"analyzer": "icu_analyzer", "text": "覺得好看就點贊" }

你會發(fā)現(xiàn) standard analyzer 就是把這句話拆成一個個字,而 icu analyzer 基本會根據(jù)語義進行拆分。

總結(jié)

經(jīng)過本文的介紹,相信你對 Elasticsearch 的分詞器也有了一個初步的認識,知道它由什么組成,能夠使用 Analyze API 對一個分詞器進行簡單的測試,也基本能夠自定義一些分詞器了。

我對內(nèi)置的 Token Filter 介紹的比較少,你可以結(jié)合官方文檔,對你感興趣的 Token Filter 進行更深入的研究,如果有什么問題也歡迎和我討論。

總結(jié)

以上是生活随笔為你收集整理的elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 尤物毛片 | 亲子乱对白乱都乱了 | 国产福利小视频在线 | 欧美日韩亚洲天堂 | 99久久久无码国产精品6 | 人妻少妇精品一区二区三区 | 午夜日韩视频 | 亚洲熟妇无码爱v在线观看 九色福利 | 性生交大片免费看视频 | 黄色一级在线视频 | 综合xx网| 亚洲综合激情 | 日韩少妇内射免费播放 | 亚洲一区二区久久 | 国产第一页在线观看 | 国产13页 | 成人激情开心 | 欧美xxxx喷水 | 麻豆精品国产传媒 | 涩漫天堂 | 98超碰在线| 亚洲精品鲁一鲁一区二区三区 | 国产精品久久久久久久久久久久久久久久久久 | 性生活av | 国模无码大尺度一区二区三区 | 精品无人区无码乱码毛片国产 | 一级bbbbbbbbb毛片 | 777奇米色| 在线97视频| 色老头影视 | 免费操人视频 | 青青精品 | 亚洲每日在线 | 在线观看免费成人 | 国产成年人视频网站 | 五月天激情电影 | 国产精品一区二区无码免费看片 | 国内一级黄色片 | 性做久久久久久久免费看 | 久久精品国产亚洲av成人 | 麻豆传媒在线 | 国产成人午夜精华液 | 中文在线视频 | 银娇在线观看 | 美女被男生免费视频 | 韩日一区二区三区 | 久久久噜噜噜www成人网 | 中文字幕亚洲国产 | 性一交一乱一色一视频麻豆 | 色网在线视频 | 婷婷久久亚洲 | 日韩午夜在线播放 | 17c国产精品 | 曰韩在线 | 韩日av在线播放 | 精品国产乱码久久久久久蜜臀网站 | 91性色| 日韩一区在线看 | 亚洲熟妇无码另类久久久 | 日日草 | 特级毛片在线播放 | 懂色av粉嫩av蜜乳av | 亚洲午夜片 | 91av视频网 | 一级艳片新婚之夜 | 无码丰满熟妇 | 热久久精品 | 中文字字幕在线观看 | 人妻体内射精一区二区三区 | 大地av | 中文字幕亚洲图片 | xx性欧美肥妇精品久久久久久 | 一区一区三区产品乱码 | 欧美日韩在线一区 | 亚洲伦理一区二区三区 | 免费黄色欧美 | 国产精品久久久久久av | 偷拍精品一区二区三区 | 一本色道久久综合亚洲精品 | 久久久久久亚洲中文字幕无码 | 婷婷在线免费观看 | 少妇久久久 | 久久久久久久久蜜桃 | 激情小说亚洲色图 | 国产精品va无码一区二区 | 一区二视频 | 在线综合网 | 亚洲精品3 | 先锋资源av网 | 久久精品国产大片免费观看 | 欧美性色黄大片手机版 | 制服丝袜亚洲色图 | 欧美伦理一区二区 | 69xxxx国产 | 一道本在线播放 | 国产情侣一区二区三区 | 国产亚洲色婷婷久久 | 波多野结衣1区2区3区 | 欧美三级黄色 |