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

全文索引的自定義詞典

更新時間:

AnalyticDB MySQL版支持在創建全文索引時使用實體詞和停用詞改變分詞結果,以獲取更貼近業務實際場景的分詞結果。AnalyticDB MySQL版通過自定義詞典實現實體詞和停用詞功能。

前提條件

  • 創建和更新自定義詞典時,需要使用者擁有對自定義詞典的DDL和DML權限。

  • 使用自定義詞典時,需要執行查詢的用戶擁有詞典的SELECT權限。

功能說明

自定義詞典本身是一張表,讀寫操作與普通表一樣。自定義詞典對新寫入的數據實時生效。

使用限制

  • 自定義詞典不允許執行DDL變更。

  • 自定義詞典不支持UPDATE和TRUNCATE。

  • 使用自定義詞典時,必須和全文索引一起使用。

  • 刪除全文索引前,需先刪除自定義詞典。

  • 一個集群僅可以創建一個自定義詞典。如果需要創建多個自定義詞典,請聯系技術支持。

  • 一個自定義詞典默認最多允許插入1萬條記錄。如果需要調整插入記錄數,請聯系技術支持。

創建自定義詞典

語法

AnalyticDB MySQL版中創建自定義詞典,具體語法如下:

CREATE TABLE tbl_dict_name (
  `value` varchar(255) NOT NULL COMMENT '實體詞/停用詞值',
  `type` varchar(4) NOT NULL [DEFAULT 'main' COMMENT 'main表示實體詞, stop表示停用詞(3.1.4.24及之后版本支持停用詞)'],
  PRIMARY KEY (`value`,`type`)
) COMMENT='用戶詞典表'
FULLTEXT_DICT = 'Y';

約束

  • 自定義詞典只能有兩個字段:value和type。

  • value和type字段都為varchar類型,并且不能為空。

  • 詞典主鍵必須同時包含value和type字段。

參數說明

  • value:具體的詞條內容。

  • type:標記詞條類型,支持實體詞(main)和停用詞(stop)。

    • 實體詞(main):識別自然語言文本中具有特定意義的實體詞條,添加到自定義詞典的實體詞不會被分詞。例如通用領域中地名和機構名等,電商領域如品牌、產品、型號等。

    • 停用詞(stop):從詞條列表中過濾掉不需要的詞條。在某些場景,分詞器分詞后獲得的詞條列表中存在需要過濾掉的詞條。例如,在SQL審計日志場景中的from詞條。

      重要

      僅3.1.4.24及之后版本支持停用詞。如何查看版本,請參見如何查看實例版本信息

  • FULLTEXT_DICT:關鍵字,標識該表為詞典表。

更新自定義詞典

插入或者刪除自定義詞典中的詞條后,詞典會立刻生效。對于新寫入表中的數據,將使用詞典最新的詞條影響分詞。

示例

  • 插入一個停用詞(stop)類型的詞條and,示例如下:

    INSERT INTO `tbl_dict_name` (`value`, `type`) VALUES ('and', 'stop');
  • 刪除一個詞條:

    DELETE FROM `tbl_dict_name` WHERE `value` = 'and' AND `type` = 'stop';

使用自定義詞典

語法

在CREATE TABLE或ALTER TABLE中添加全文索引時,指定自定義詞典。語法如下:

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

參數說明

  • idx_name:全文索引名稱。

  • column_name:全文索引的列。

  • WITH ANALYZER analyzer_name:指定分詞器。AnalyticDB MySQL支持多種分詞器,詳情請參見全文索引的分詞器

  • WITH DICT tbl_dict_name:指定自定義詞典。

示例

tbl_fulltext_demo表中的數據類型為varchar類型的列content添加全文索引,索引的名稱為fidx_c,且使用內置alinlp分詞器,自定義詞典使用預先定義好的詞典表tbl_ext_dict。

ALTER TABLE `tbl_fulltext_demo` 
ADD FULLTEXT INDEX fidx_c(`content`) 
WITH ANALYZER alinlp 
WITH DICT `tbl_ext_dict`;