日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

全文索引的分詞器

更新時(shí)間:

本文介紹AnalyticDB for MySQL提供的內(nèi)置分詞器以及分詞器的使用方法和分詞效果。

分詞器介紹

AnalyticDB for MySQL全文索引功能提供多種內(nèi)置分詞器,包括AliNLP分詞器IK分詞器Standard分詞器Ngram分詞器Edge_ngram分詞器Pattern分詞器。您可以根據(jù)不同場(chǎng)景,使用默認(rèn)分詞器或其他內(nèi)置分詞器對(duì)文本分詞。默認(rèn)內(nèi)置分詞器的策略如下:

  • 3.1.4.15版本之前的集群,系統(tǒng)默認(rèn)使用AliNLP分詞器。

  • 3.1.4.15版本及以上版本的集群,系統(tǒng)默認(rèn)使用IK分詞器。

說明

如何查看集群的內(nèi)核版本,請(qǐng)參見如何查看實(shí)例版本信息

指定分詞器

語法

FULLTEXT INDEX idx_name(`column_name`) [ WITH ANALYZER analyzer_name ] [ WITH DICT tbl_dict_name];

參數(shù)說明

  • idx_name:全文索引名稱。

  • column_name:全文索引的列。

  • WITH ANALYZER analyzer_name:指定分詞器。

  • WITH DICT tbl_dict_name:指定自定義詞典。AnalyticDB for MySQL支持自定義詞典,詳情請(qǐng)參見全文索引的自定義詞典

示例

在創(chuàng)建全文索引表時(shí)指定分詞器,示例如下:

CREATE TABLE `tbl_fulltext_demo` (
  `id` int,
  `content` varchar,
  `content_alinlp` varchar,
  `content_ik` varchar,
  `content_standard` varchar,
  `content_ngram` varchar,
  `content_edge_ngram` varchar,
  FULLTEXT INDEX fidx_c(`content`),  // 使用默認(rèn)分詞器
  FULLTEXT INDEX fidx_alinlp(`content_alinlp`) WITH ANALYZER alinlp,
  FULLTEXT INDEX fidx_ik(`content_ik`) WITH ANALYZER ik,
  FULLTEXT INDEX fidx_standard(`content_standard`) WITH ANALYZER standard,
  FULLTEXT INDEX fidx_ngram(`content_ngram`) WITH ANALYZER ngram,
  FULLTEXT INDEX fidx_edge_ngram(`content_edge_ngram`) WITH ANALYZER edge_ngram,
  PRIMARY KEY (`id`)
) DISTRIBUTED BY HASH(id);                

AliNLP分詞器

AliNLP分詞器是由阿里云與達(dá)摩院自然語言處理平臺(tái)提供的自然語言分詞工具包,支持通過全文詞典使用實(shí)體詞和停用詞。AliNLP分詞器將連續(xù)的自然語言文本,切分成語義合理、完整的詞條序列,支持中文、英文、印度尼西亞語、馬來語、泰語、越南語、法語和西班牙語等語言。

AliNLP配置項(xiàng)

如何查看和修改分詞器的配置,請(qǐng)參見查看和修改分詞器配置

配置項(xiàng)

取值說明

FULLTEXT_SPLIT_GRANULARITY

分詞的粒度。默認(rèn)值為2,取值范圍是2~8之間的整數(shù)。

FULLTEXT_FILTER_ST_CONVERT_ENABLED

是否開啟詞干轉(zhuǎn)換。取值:

  • true:開啟詞干轉(zhuǎn)換。

  • false(默認(rèn)值):不開啟詞干轉(zhuǎn)換。

例如:men經(jīng)過詞干轉(zhuǎn)換后變?yōu)閙an, cars變?yōu)閏ar。

FULLTEXT_TOKENIZER_CASE_SENSITIVE

是否區(qū)分大小寫。取值:

  • true:區(qū)分大小寫。

  • false(默認(rèn)值):不區(qū)分大小寫。

分詞效果

默認(rèn)配置的分詞效果如下:

  • 英文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_alinlp_test('Hello world');

    返回結(jié)果:

    [hello,  , world]
  • 中文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_alinlp_test('產(chǎn)品和服務(wù)');

    返回結(jié)果:

    [產(chǎn)品, 和, 服務(wù)]
說明

查看分詞效果時(shí),必須在SQL語句前添加/*+ mode=two_phase*/ ,否則SQL語句無法正確執(zhí)行。

IK分詞器

IK分詞器是一個(gè)開源的輕量級(jí)中文分詞工具包,支持通過全文詞典使用實(shí)體詞和停用詞。

IK配置項(xiàng)

如何查看和修改分詞器的配置,請(qǐng)參見查看和修改分詞器配置

配置項(xiàng)

取值說明

CSTORE_IK_SEGMENTER_USE_SMART_ENABLE

分詞的粒度。取值:

  • true:ik_smart粗粒度分詞。

  • false(默認(rèn)值):ik_max_word細(xì)粒度分詞。

CSTORE_IK_SEGMENTER_LETTER_MIN_LENGTH

分詞詞條的最小長度。默認(rèn)值為3,取值范圍是2~16之間的整數(shù)。

CSTORE_IK_SEGMENTER_LETTER_MAX_LENGTH

分詞詞條的最大長度。默認(rèn)值為128,取值范圍是2~256之間的整數(shù)。

分詞效果

默認(rèn)配置的分詞效果如下:

  • 英文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_ik_test('Hello world');

    返回結(jié)果:

    [hello, world, or]
  • 中文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_ik_test('產(chǎn)品和服務(wù)');

    返回結(jié)果:

    [產(chǎn)品, 和服, 服務(wù), 服, 務(wù)]
說明

查看分詞效果時(shí),必須在SQL語句前添加/*+ mode=two_phase*/ ,否則SQL語句無法正確執(zhí)行。

Standard分詞器

Standard分詞器在對(duì)文本進(jìn)行切分時(shí)遵循不同的規(guī)則,切分英文文本時(shí),先將文本轉(zhuǎn)換為小寫形式并去除停用詞和標(biāo)點(diǎn)符號(hào),然后進(jìn)行切分;切分中文文本時(shí)直接按照單字切分。Standard分詞器支持通過全文詞典使用實(shí)體詞和停用詞。

Standard配置項(xiàng)

如何查看和修改分詞器的配置,請(qǐng)參見查看和修改分詞器配置

配置

取值說明

FULLTEXT_MAX_TOKEN_LENGTH

被分詞文本的最大長度,超出部分不再被分詞。默認(rèn)值為255,取值范圍是1~1048576之間的整數(shù)。

分詞效果

默認(rèn)配置的分詞效果如下:

  • 英文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_standard_test('Hello world');

    返回結(jié)果:

    [hello, world]
  • 中文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_standard_test('產(chǎn)品和服務(wù)');

    返回結(jié)果:

    [產(chǎn), 品, 和, 服, 務(wù)]
說明

查看分詞效果時(shí),必須在SQL語句前添加/*+ mode=two_phase*/ ,否則SQL語句無法正確執(zhí)行。

Ngram分詞器

Ngram分詞器根據(jù)配置項(xiàng)FULLTEXT_NGRAM_TOKEN_SIZE的取值切分文本,支持通過全文詞典使用實(shí)體詞和停用詞。使用Ngram分詞器可以提升模糊檢索的查詢效率。

Ngram配置項(xiàng)

如何查看和修改分詞器的配置,請(qǐng)參見查看和修改分詞器配置

配置

取值說明

FULLTEXT_NGRAM_TOKEN_SIZE

文本切分的長度。默認(rèn)值為2,取值范圍是1~8之間的整數(shù)。

例如:對(duì)“產(chǎn)品和服務(wù)”分詞,當(dāng)FULLTEXT_NGRAM_TOKEN_SIZE=1時(shí),分詞為【產(chǎn), 品, 和, 服, 務(wù)】;當(dāng)FFULLTEXT_NGRAM_TOKEN_SIZE=2時(shí),分詞為【產(chǎn)品, 品和, 和服, 服務(wù)】;當(dāng)FULLTEXT_NGRAM_TOKEN_SIZE=3時(shí),分詞為【產(chǎn)品和, 品和服, 和服務(wù)】。

分詞效果

默認(rèn)配置的分詞效果如下:

  • 英文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_ngram_test('Hello world');

    返回結(jié)果:

    [he, el, ll, lo, o ,  w, wo, or, rl, ld]
  • 中文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_ngram_test('產(chǎn)品和服務(wù)');

    返回結(jié)果:

    [產(chǎn)品, 品和, 和服, 服務(wù)]
說明

查看分詞效果時(shí),必須在SQL語句前添加/*+ mode=two_phase*/ ,否則SQL語句無法正確執(zhí)行。

Edge_ngram分詞器

Edge_ngram分詞器使用了與Ngram分詞器一樣的分詞方法。Edge_ngram主要應(yīng)用于前綴分詞和匹配的場(chǎng)景,支持通過全文詞典使用實(shí)體詞和停用詞。

Edge_ngram配置項(xiàng)

如何查看和修改分詞器的配置,請(qǐng)參見查看和修改分詞器配置

配置

取值說明

FULLTEXT_MIN_GRAM_SIZE

前綴切分的最小長度。默認(rèn)值為1,取值范圍是1~8之間的整數(shù)。

FULLTEXT_MAX_GRAM_SIZE

前綴切分的最大長度,取值必須大于前綴切分的最小長度。默認(rèn)值為2,取值范圍是1~16之間的整數(shù)。

分詞效果

默認(rèn)配置的分詞效果如下:

  • 英文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_edge_ngram_test('Hello world');

    返回結(jié)果:

    [h, he]
  • 中文文本的分詞效果。

    /*+ mode=two_phase*/ SELECT fulltext_edge_ngram_test('產(chǎn)品和服務(wù)');

    返回結(jié)果:

    [產(chǎn), 產(chǎn)品]
說明

查看分詞效果時(shí),必須在SQL語句前添加/*+ mode=two_phase*/ ,否則SQL語句無法正確執(zhí)行。

Pattern分詞器

Pattern分詞器按正則表達(dá)式切分文本,不支持通過全文詞典使用實(shí)體詞、停用詞和通過SQL語句查詢分詞效果。

語法

FULLTEXT INDEX fidx_name(`column_name`) WITH ANALYZER pattern_tokenizer("Custom_rule") [ WITH DICT `tbl_dict_name` ];

參數(shù)說明

Custom_rule:正則表達(dá)式。

示例

  • 指定以-作為切分文本的規(guī)則,將“商品的用戶價(jià)值-和使用價(jià)值”切分為[商品的用戶價(jià)值,和使用價(jià)值]

    FULLTEXT INDEX fidx_pattern(`content_pattern`) WITH ANALYZER pattern_tokenizer("-");
  • 指定以/作為切分文本的規(guī)則,將“商品的/用戶價(jià)值/和/使用價(jià)值”切分為[商品的,用戶價(jià)值,和,使用價(jià)值]

    FULLTEXT INDEX fidx_pattern(`content_pattern`) WITH ANALYZER pattern_tokenizer("/");

Pattern配置項(xiàng)

如何查看和修改分詞器的配置,請(qǐng)參見查看和修改分詞器配置

配置

取值說明

FULLTEXT_TOKENIZER_CASE_SENSITIVE

是否區(qū)分大小寫。取值:

  • true:區(qū)分大小寫。

  • false(默認(rèn)值):不區(qū)分大小寫。

查看和修改分詞器配置

AnalyticDB for MySQL支持查看和修改分詞器的配置。

查看配置

  • 使用show adb_config查詢配置項(xiàng)。

    語法

    show adb_config key <analyzer_param>;

    參數(shù)說明

    analyzer_param:配置項(xiàng)名稱。

    示例

    show adb_config key FULLTEXT_NGRAM_TOKEN_SIZE;
    說明

    show adb_config命令可以查詢默認(rèn)配置項(xiàng)和修改后的配置項(xiàng)。

  • 使用SELECT查詢配置項(xiàng)。

    語法

    SELECT `key`, `value`, `update_time`
    FROM INFORMATION_SCHEMA.kepler_meta_configs
    WHERE key = '<analyzer_param>';

    參數(shù)說明

    analyzer_param:配置項(xiàng)名稱。

    示例

    SELECT `key`, `value`, `update_time`
    FROM INFORMATION_SCHEMA.kepler_meta_configs
    WHERE key = 'FULLTEXT_NGRAM_TOKEN_SIZE';
    說明

    SELECT語句只能查詢修改后的配置項(xiàng),如果查詢默認(rèn)的配置項(xiàng),查詢結(jié)果為空。

修改配置

語法

set adb_config <analyzer_param>=<value>;

參數(shù)說明

  • analyzer_param:配置項(xiàng)的名稱。

  • value:配置項(xiàng)的取值。

示例

set adb_config FULLTEXT_NGRAM_TOKEN_SIZE=3;