🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

1122閲覧

mysql 全文検索の設定値について

yookoko

総合スコア62

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

1クリップ

投稿2021/01/20 09:34

mysql version 5.7.22

Mysql全文検索N-gramについて調べています。
作成したテーブルは以下のようなテーブルです。

sql:SQL

1CREATE TABLE test ( 2 id bigint NOT NULL PRIMARY KEY, 3 content longtext, 4 FULLTEXT (content) WITH PARSER ngram 5) ENGINE=InnoDB CHARACTER SET utf8mb4;

以下の3つの単語分割に関する?設定値について質問があります。

  • innodb_ft_min_token_size
  • ft_min_word_len
  • ngram_token_size

設定値を調べたところN-gramを利用する場合は、innodb_ft_min_token_sizeが無視され、ngram_token_sizeの値が利用されることがわかりました。

ft_min_word_lenについてはよくわかりませんでした。
ft_min_word_lenが何に影響する設定値なのか、innodb_ft_min_token_sizeと同様にN-gramの利用時には無視されてしまう値なのか教えていただけると助かります。

お時間ありましたらご回答よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ドキュメントを読んだ限りでは、

以前からある (わかち書きを自分でやってあげないといけない) fulltext
インデックスにおいて単語として扱う最小文字数は、MyISAM だと ft_min_word_len、
InnoDB だと innodb_ft_min_token_size で指定していた。

その後、わかち書き不要である n-gram な方式が出てきたが、その場合は
そもそも最小文字数という概念がないので n-gram の場合は ft_ なんとかは関係なし。
ngram_token_size は、1-gram・2-gram・3-gram などを指定するためのものなので意味が違う。

と受け取りました (試しておりません)。

投稿2021/01/20 11:47

68user

総合スコア2022

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yookoko

2021/01/20 12:26

ご回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問