"title"、 "description"などのビデオデータがあるテーブルがあります。MySQL全文索引付きの検索エンジンを作成しようとしています。 SQLのクエリはいくつかの単語で動作しますが、すべての単語では動作しません。ここに私のSQLクエリです。私は、クエリ用語で "XXXXXXXX" を置き換えるMySQL Fulltext(Not)検索
SELECT *
FROM videos
WHERE MATCH (title, description) AGAINST ('XXXXXXXXXX' IN NATURAL LANGUAGE MODE)
。それは "otomotiv"で動作しますが、 "otomoti"では動作しません。 "otomoti"が "otomotiv"という単語全体の一部であるので、 "otomotiv"を見つけたら "otomoti"を見つける必要はありませんか?
「NATURAL LANGUAGE MODE」または「QUERY EXPANSION」の検索モードに変更しようとしましたが、運がまだありません。
通常、MySQLは単語全体の一部を見つけることができませんか?
それは、おかげで動作します。だから、 "potomotiv"のような他のバリエーションがあるかもしれないので、AGAINST( '* otomoti *' in BOOLEAN MODE)と書くのは賢明でしょうか? (アスタリスクb/cには申し訳ありませんが、アスタリスクの間は太字で表示されます)。 –
いいえ、単語の先頭にアスタリスクを置くことはできません。部分文字列検索を実行する場合は、「LIKE」演算子を見てください。 –
"LIKE"は "FULLTEXT"よりも遅いと思った。それが本当なら、FULLTEXTを守らなければならないのですが、そうですか?このリンクでも議論されています。http://forums.mysql.com/read.php?24,126294 "LIKE"を使用する方が良いかどうかはわかりません。 –