AnalyticDB for MySQLでフルテキストインデックスを作成するときに、エンティティとストップワードを使用して、セグメンテーション結果を実際のビジネスシナリオにより適したものにすることができます。 AnalyticDB for MySQLは、エンティティとストップワードを適用するためのカスタム辞書を提供します。
前提条件
- カスタム辞書を作成または更新するには、カスタム辞書に対するDDLおよびDML権限が必要です。
- カスタム辞書を使用するには、カスタム辞書に対するSELECT権限が必要です。
概要
カスタム辞書はテーブルです。 テーブルと同じ方法で、カスタム辞書に対して読み取りおよび書き込み操作を実行できます。 カスタム辞書に書き込まれたデータは、リアルタイムで有効になります。
制限事項
- カスタム辞書でDDLの変更を実行することはできません。
- カスタム辞書に対してUPDATEまたはTRUNCATE操作を実行することはできません。
- カスタム辞書は、フルテキストインデックスと一緒に使用する必要があります。
- フルテキストインデックスを削除する前に、対応するカスタム辞書を削除する必要があります。
- クラスターに対して作成できるカスタム辞書は1つだけです。 複数のカスタム辞書を作成するには、テクニカルサポートにお問い合わせください。
- デフォルトでは、カスタム辞書では最大10,000個のエントリを挿入できます。 この上限を変更するには、テクニカルサポートにお問い合わせください。
カスタム辞書の作成
構文
AnalyticDB for MySQLでカスタム辞書を作成するには、次の構文
を使用します。
'value' varchar(255) NOT NULL COMMENT 'エンティティまたはストップワードの値' 、
'type' varchar (4) NOT NULL [DEFAULT 'main' COMMENT'mainはエンティティを示し、stopはストップワードを示す。 ストップワードはV3.1.4.24の時点でサポートされています。
基本キー ('value','type')
) コメント='あなたの辞書テーブル'
FULLTEXT_DICT = 'Y';
制約
- カスタムディクショナリには、valueとtypeの2つのフィールドのみを含めることができます。
- valueおよびtypeフィールドはVARCHAR型であり、空にすることはできません。
- ディクショナリの主キーには、valueフィールドとtypeフィールドの両方が含まれている必要があります。
パラメーター
- value: 単語の値。
- type: メインまたはストップにすることができる単語のタイプ。 mainはエンティティを示し、stopはストップワードを示す。
- main: 自然言語テキストで特定の意味を持つエンティティを識別します。 カスタム辞書に追加されたエンティティはセグメント化されません。 例: 一般分野の場所や組織の名前、eコマース分野のブランド、製品、モデル。
- stop: 不要な単語を除外します。 一部のシナリオでは、セグメンテーション後の特定の単語を除外する必要があります。 例: SQL監査ログシナリオの単語
から
。重要 ストップワードは、マイナーエンジンバージョン3.1.4.24以降でのみサポートされます。 クラスターのマイナーエンジンバージョンを表示する方法の詳細については、AnalyticDB for MySQLクラスターのバージョンを照会するにはどうすればよいですか?
- FULLTEXT_DICT: テーブルが辞書テーブルかどうかを指定します。
カスタム辞書の更新
カスタム辞書で実行されたINSERTまたはDELETE操作は、すぐに有効になります。 テーブルの新しく書き込まれたデータは、カスタム辞書の最新の単語を使用して分割されます。
例
- とという名前のストップワードを挿入
し
ます。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 analizer_name] [ WITH DICT tbl_dict_name];
パラメーター
- idx_name: フルテキストインデックスの名前。
- column_name: フルテキストインデックスを作成する列の名前。
- WITH ANALYZER analyzer_name: アナライザーを指定します。 AnalyticDB for MySQLは、さまざまなアナライザーをサポートしています。 詳細については、「フルテキストインデックスのアナライザー」をご参照ください。
- WITH DICT tbl_dict_name: カスタム辞書を指定します。
例
tbl_fulltext_demo
テーブルのcontent
という名前のVARCHARタイプの列に、fidx_c
という名前のフルテキストインデックスを作成します。 組み込みのAliNLPアナライザーとtbl_ext_dict
という名前の定義済みカスタム辞書を使用します。 ALTER TABLE 'tbl_fulltext_demo'
ADD FULLTEXT INDEX fidx_c('content')
アナリスト付きalinlp
DICT 'tbl_ext_dict ';