2

次のクエリを実行しようとしています

SELECT * FROM complains WHERE match(title, description) against('+lorem' IN BOOLEAN MODE)

テーブルの苦情には 2 つの FULLTEXT インデックスがあります。タイトルと説明ですが、MySQL からこのエラーが引き続き発生します

Error Code: 1191. Can't find FULLTEXT index matching the column list

ただし、各行のクエリを単独で実行できます

SELECT * FROM complains WHERE match(description) against('+lorem' IN BOOLEAN MODE)
SELECT * FROM complains WHERE match(title) against('+lorem' IN BOOLEAN MODE)

これはうまくいきます。私は何が欠けていますか?

ここに画像の説明を入力

4

1 に答える 1

1

演算子で複数のフィールドをリストし、ブール モードと innodb テーブル エンジンを使用する場合は、ブール型全文検索match()に関する MySQL ドキュメントのように、フィールドをカバーする複数列のフルテキスト インデックスを配置する必要があります。

InnoDB テーブルでは、ブール クエリを実行するために MATCH() 式のすべての列に FULLTEXT インデックスが必要です。MyISAM 検索インデックスに対するブールクエリは、FULLTEXT インデックスがなくても機能しますが、この方法で実行される検索は非常に遅くなります。

于 2016-11-11T17:40:41.180 に答える