最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于ElasticSearch Analyzer的使用規(guī)則詳解

 更新時間:2021年07月12日 10:23:17   作者:wanson2015  
這篇文章主要介紹了基于ElasticSearch Analyzer的使用規(guī)則,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

analyzer的使用規(guī)則

查詢只能查找倒排索引表中真實存在的項, 所以保證文檔在索引時與查詢字符串在搜索時應(yīng)用相同的分析過程非常重要,這樣查詢的項才能夠匹配倒排索引中的項。

盡管是在說 文檔 ,不過分析器可以由每個字段決定。 每個字段都可以有不同的分析器,既可以通過配置為字段指定分析器,也可以使用更高層的類型(type)、索引(index)或節(jié)點(node)的默認(rèn)配置。在索引時,一個字段值是根據(jù)配置或默認(rèn)分析器分析的。

例如為 my_index 新增一個字段:

PUT /my_index/_mapping/my_type
{
    "my_type": {
        "properties": {
            "english_title": {
                "type":     "string",
                "analyzer": "english"
            }
        }
    }
}

現(xiàn)在我們就可以通過使用 analyze API 來分析單詞 Foxes ,進而比較 english_title 字段和 title 字段在索引時的分析結(jié)果:

GET /my_index/_analyze
{
"field": "my_type.title",
"text": "Foxes"
}
 
GET /my_index/_analyze
{
"field": "my_type.english_title",
"text": "Foxes"
}
  1. 字段 title ,使用默認(rèn)的 standard 標(biāo)準(zhǔn)分析器,返回詞項 foxes 。
  2. 字段 english_title ,使用 english 英語分析器,返回詞項 fox 。

這意味著,如果使用底層 term 查詢精確項 fox 時, english_title 字段會匹配但 title 字段不會。

如同 match 查詢這樣的高層查詢知道字段映射的關(guān)系,能為每個被查詢的字段應(yīng)用正確的分析器。 可以使用 validate-query API 查看這個行為:

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)槊總€字段使用合適的分析器,以保證它在尋找每個項時都為該字段使用正確的格式。

默認(rèn)分析器

雖然我們可以在字段層級指定分析器, 但是如果該層級沒有指定任何的分析器,那么我們?nèi)绾文艽_定這個字段使用的是哪個分析器呢?

分析器可以從三個層面進行定義:按字段(per-field)、按索引(per-index)或全局缺?。╣lobal default)。Elasticsearch 會按照以下順序依次處理,直到它找到能夠使用的分析器。索引時的順序如下:

  • 字段映射里定義的 analyzer ,否則
  • 索引設(shè)置中名為 default 的分析器,默認(rèn)為
  • standard 標(biāo)準(zhǔn)分析器

在搜索時,順序有些許不同:

  • 查詢自己定義的 analyzer ,否則
  • 字段映射里定義的 analyzer ,否則
  • 索引設(shè)置中名為 default 的分析器,默認(rèn)為
  • standard 標(biāo)準(zhǔn)分析器

有時,在索引時和搜索時使用不同的分析器是合理的。 我們可能要想為同義詞建索引(例如,所有 quick 出現(xiàn)的地方,同時也為 fast 、 rapid 和 speedy 創(chuàng)建索引)。但在搜索時,我們不需要搜索所有的同義詞,取而代之的是尋找用戶輸入的單詞是否是 quick 、 fast 、 rapid 或 speedy 。

為了區(qū)分,Elasticsearch 也支持一個可選的 search_analyzer 映射,它僅會應(yīng)用于搜索時( analyzer 還用于索引時)。還有一個等價的 default_search 映射,用以指定索引層的默認(rèn)配置。

如果考慮到這些額外參數(shù),一個搜索時的 完整 順序會是下面這樣:

  • 查詢自己定義的 analyzer ,否則
  • 字段映射里定義的 search_analyzer ,否則
  • 字段映射里定義的 analyzer ,否則
  • 索引設(shè)置中名為 default_search 的分析器,默認(rèn)為
  • 索引設(shè)置中名為 default 的分析器,默認(rèn)為
  • standard 標(biāo)準(zhǔn)分析器

Elasticsearch分詞(Analyzer)

一、什么是Analysis ?

Analysis 叫做分詞,就是將文本轉(zhuǎn)換為一系列單詞(term/token)的過程。

Analysis 是通過Analyzer來實現(xiàn)的。

可使用Elasticserach內(nèi)置的分析器或按需優(yōu)化分需求或安裝分析器插件 。

在數(shù)據(jù)寫入的時候轉(zhuǎn)換詞條于Query語句查詢的時候也需要用相同的分析器。

二、Analyzer的組成與工作機制

Character Filter 針對原始文本處理,例如去除html。

Tokenizer 按規(guī)則切分為單詞。Tokenizer Filter將切分的單詞進行加工,小寫,刪除stopwords,增加同義詞。

在這里插入圖片描述

三、Elasticserach內(nèi)置的一些分詞器

1) _analyzer API 三種使用方法

2) Standard Analyzer

原理

在這里插入圖片描述

示例

在這里插入圖片描述

3)Simple Analyzer

原理

在這里插入圖片描述

示例

在這里插入圖片描述

4)Whitespace Analyzer

原理

在這里插入圖片描述

示例

在這里插入圖片描述

5)Stop Analyzer

原理

在這里插入圖片描述

示例

在這里插入圖片描述

6)Keyword Analyzer

原理

在這里插入圖片描述

示例

在這里插入圖片描述

7)Pattern Analyzer

原理

在這里插入圖片描述

示例

在這里插入圖片描述

8)Language Analyzer

支持按語言分詞

示例

在這里插入圖片描述

四、中文分詞

中文分詞的難點:

中文句子,切成一個一個詞(不是一個一個字)。英文中,單詞有自然的空格作為分隔。一句中文,在不同的上下文,有不同的理解。

1)ICU Analyzer

原理

在這里插入圖片描述

演示(需要提前安裝 ICU Analyze 插件)

在這里插入圖片描述

2)IK

在這里插入圖片描述

3) THULAC

在這里插入圖片描述

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實現(xiàn)字符串切割的方法詳解

    Java實現(xiàn)字符串切割的方法詳解

    這篇文章主要為大家介紹了一些Java中切割字符串的小技巧,可以把性能提升5~10倍。文中的示例代碼講解詳細(xì),快跟隨小編一起學(xué)習(xí)一下
    2022-03-03
  • Springboot之@Controller注解不生效問題及解決

    Springboot之@Controller注解不生效問題及解決

    這篇文章主要介紹了Springboot之@Controller注解不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Java實現(xiàn)多線程的n種方法

    Java實現(xiàn)多線程的n種方法

    在現(xiàn)代編程中,多線程是一項關(guān)鍵技術(shù),它使得程序能夠同時執(zhí)行多個任務(wù),提高了系統(tǒng)的效率和性能,在Java中,有多種方法可以實現(xiàn)多線程,本文將詳細(xì)介紹幾種常見的Java多線程實現(xiàn)方法,需要的朋友可以參考下
    2024-11-11
  • IDEA解決@Slf4j中l(wèi)og報紅問題

    IDEA解決@Slf4j中l(wèi)og報紅問題

    在IntelliJ IDEA中使用log.info()時,如果出現(xiàn)錯誤,通常是因為缺少Lombok插件,以下是解決方法:打開IntelliJ IDEA,進入設(shè)置(File > Settings 或者 Ctrl+Alt+S),在Plugins部分點擊Browse repositories,搜索Lombok并安裝,安裝完成后,問題通常可以解決
    2024-12-12
  • 淺談java中的聲明常量為什么要用static修飾

    淺談java中的聲明常量為什么要用static修飾

    這篇文章主要介紹了淺談java中的聲明常量為什么要用static修飾的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 移除元素Java實現(xiàn)方式

    移除元素Java實現(xiàn)方式

    這篇文章主要介紹了移除元素Java實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • spring整合struts2過程詳解

    spring整合struts2過程詳解

    這篇文章主要介紹了spring整合struts2過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • java中棧和隊列的實現(xiàn)和API的用法(詳解)

    java中棧和隊列的實現(xiàn)和API的用法(詳解)

    下面小編就為大家?guī)硪黄猨ava中棧和隊列的實現(xiàn)和API的用法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Spring boot集成RabbitMQ的示例代碼

    Spring boot集成RabbitMQ的示例代碼

    本篇文章主要介紹了Spring boot集成RabbitMQ的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Java中的WeakHashMap簡析

    Java中的WeakHashMap簡析

    這篇文章主要介紹了Java中的WeakHashMap簡析,Map 的子類常見的有 HashMap、Hashtable、ConcurrentHashMap、LinkedHashMap 等,WeakHashMap,直譯就是,虛弱的 HashMap,從名字可得知其和 HashMap 有關(guān),需要的朋友可以參考下
    2023-09-09

最新評論

汤原县| 浑源县| 简阳市| 饶平县| 绩溪县| 日喀则市| 廊坊市| 阿坝| 肥城市| 同心县| 兴山县| 南和县| 勐海县| 平遥县| 如皋市| 灵山县| 界首市| 平果县| 镇安县| 东台市| 汉川市| 正阳县| 定远县| 莲花县| 凤阳县| 静安区| 渝中区| 奎屯市| 凤庆县| 水富县| 怀集县| 阿坝县| 桂阳县| 河北区| 仁化县| 阿荣旗| 固安县| 巴青县| 海门市| 芒康县| 巴彦县|