本文小編為大家詳細(xì)介紹“基于ElasticSearch Analyzer的使用規(guī)則是什么”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“基于ElasticSearch Analyzer的使用規(guī)則是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
涼城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
查詢只能查找倒排索引表中真實(shí)存在的項(xiàng), 所以保證文檔在索引時(shí)與查詢字符串在搜索時(shí)應(yīng)用相同的分析過程非常重要,這樣查詢的項(xiàng)才能夠匹配倒排索引中的項(xiàng)。
盡管是在說 文檔 ,不過分析器可以由每個(gè)字段決定。 每個(gè)字段都可以有不同的分析器,既可以通過配置為字段指定分析器,也可以使用更高層的類型(type)、索引(index)或節(jié)點(diǎn)(node)的默認(rèn)配置。在索引時(shí),一個(gè)字段值是根據(jù)配置或默認(rèn)分析器分析的。
例如為 my_index 新增一個(gè)字段:
PUT /my_index/_mapping/my_type { "my_type": { "properties": { "english_title": { "type": "string", "analyzer": "english" } } } }
現(xiàn)在我們就可以通過使用 analyze API 來分析單詞 Foxes ,進(jìn)而比較 english_title 字段和 title 字段在索引時(shí)的分析結(jié)果:
GET /my_index/_analyze { "field": "my_type.title", "text": "Foxes" } GET /my_index/_analyze { "field": "my_type.english_title", "text": "Foxes" }
字段 title ,使用默認(rèn)的 standard 標(biāo)準(zhǔn)分析器,返回詞項(xiàng) foxes 。
字段 english_title ,使用 english 英語分析器,返回詞項(xiàng) fox 。
這意味著,如果使用底層 term 查詢精確項(xiàng) fox 時(shí), english_title 字段會(huì)匹配但 title 字段不會(huì)。
如同 match 查詢這樣的高層查詢知道字段映射的關(guān)系,能為每個(gè)被查詢的字段應(yīng)用正確的分析器。 可以使用 validate-query API 查看這個(gè)行為:
GET /my_index/my_type/_validate/query?explain { "query": { "bool": { "should": [ { "match": { "title": "Foxes"}}, { "match": { "english_title": "Foxes"}} ] } } }
返回語句的 explanation 結(jié)果:
(title:foxes english_title:fox)
match 查詢?yōu)槊總€(gè)字段使用合適的分析器,以保證它在尋找每個(gè)項(xiàng)時(shí)都為該字段使用正確的格式。
雖然我們可以在字段層級(jí)指定分析器, 但是如果該層級(jí)沒有指定任何的分析器,那么我們?nèi)绾文艽_定這個(gè)字段使用的是哪個(gè)分析器呢?
分析器可以從三個(gè)層面進(jìn)行定義:按字段(per-field)、按索引(per-index)或全局缺?。╣lobal default)。Elasticsearch 會(huì)按照以下順序依次處理,直到它找到能夠使用的分析器。索引時(shí)的順序如下:
字段映射里定義的 analyzer ,否則
索引設(shè)置中名為 default 的分析器,默認(rèn)為
standard 標(biāo)準(zhǔn)分析器
在搜索時(shí),順序有些許不同:
查詢自己定義的 analyzer ,否則
字段映射里定義的 analyzer ,否則
索引設(shè)置中名為 default 的分析器,默認(rèn)為
standard 標(biāo)準(zhǔn)分析器
有時(shí),在索引時(shí)和搜索時(shí)使用不同的分析器是合理的。 我們可能要想為同義詞建索引(例如,所有 quick 出現(xiàn)的地方,同時(shí)也為 fast 、 rapid 和 speedy 創(chuàng)建索引)。但在搜索時(shí),我們不需要搜索所有的同義詞,取而代之的是尋找用戶輸入的單詞是否是 quick 、 fast 、 rapid 或 speedy 。
為了區(qū)分,Elasticsearch 也支持一個(gè)可選的 search_analyzer 映射,它僅會(huì)應(yīng)用于搜索時(shí)( analyzer 還用于索引時(shí))。還有一個(gè)等價(jià)的 default_search 映射,用以指定索引層的默認(rèn)配置。
如果考慮到這些額外參數(shù),一個(gè)搜索時(shí)的 完整 順序會(huì)是下面這樣:
查詢自己定義的 analyzer ,否則
字段映射里定義的 search_analyzer ,否則
字段映射里定義的 analyzer ,否則
索引設(shè)置中名為 default_search 的分析器,默認(rèn)為
索引設(shè)置中名為 default 的分析器,默認(rèn)為
standard 標(biāo)準(zhǔn)分析器
Analysis 叫做分詞,就是將文本轉(zhuǎn)換為一系列單詞(term/token)的過程。
Analysis 是通過Analyzer來實(shí)現(xiàn)的。
可使用Elasticserach內(nèi)置的分析器或按需優(yōu)化分需求或安裝分析器插件 。
在數(shù)據(jù)寫入的時(shí)候轉(zhuǎn)換詞條于Query語句查詢的時(shí)候也需要用相同的分析器。
Character Filter 針對(duì)原始文本處理,例如去除html。
Tokenizer 按規(guī)則切分為單詞。Tokenizer Filter將切分的單詞進(jìn)行加工,小寫,刪除stopwords,增加同義詞。
1) _analyzer API 三種使用方法
2) Standard Analyzer
原理
示例
3)Simple Analyzer
原理
示例
4)Whitespace Analyzer
原理
示例
5)Stop Analyzer
原理
示例
6)Keyword Analyzer
原理
示例
7)Pattern Analyzer
原理
示例
8)Language Analyzer
支持按語言分詞
示例
中文分詞的難點(diǎn):
中文句子,切成一個(gè)一個(gè)詞(不是一個(gè)一個(gè)字)。英文中,單詞有自然的空格作為分隔。一句中文,在不同的上下文,有不同的理解。
1)ICU Analyzer
原理
演示(需要提前安裝 ICU Analyze 插件)
2)IK
3) THULAC
讀到這里,這篇“基于ElasticSearch Analyzer的使用規(guī)則是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文題目:基于ElasticSearchAnalyzer的使用規(guī)則是什么
轉(zhuǎn)載注明:http://aaarwkj.com/article20/peijco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、ChatGPT、云服務(wù)器、企業(yè)網(wǎng)站制作、面包屑導(dǎo)航、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)