1

MySqlのMATCHを理解するのに問題があります。「キーワード」フィールドに全文索引を含むテーブルがあります。キーワードはコンマで区切られます。

prep、rat、mouseというキーワードで3行でテストしています

「prep」または「rat」のいずれかを検索すると、希望する結果が得られます。しかし、「マウス」を検索しても結果が得られません。これは私が使用しているクエリです:

SELECT *, MATCH(Keywords) AGAINST('mouse') AS Score
FROM fs_Files
WHERE MATCH(Keywords) AGAINST('mouse')
ORDER BY score DESC;

IN BOOLEAN MODE「マウス」の後も試してみましたが、同じ結果です。

編集 「マウス」という単語を使用したデータベースエントリでは、実際には「mus」(ノルウェー語ではマウス)という単語を使用しました。これを「musebart」(単語を長くしただけ)に変更すると、検索でそれが検出されることがわかりました。たった3文字で短すぎるのでしょうか?MySqlには3文字しか含まれていないため、それを無視していますか(ストップワード?)?

もう一度編集: ビンゴ、検索可能にするには少なくとも4文字である必要があります。それ以外の場合は、変更する必要があります(変更する権限がある場合)リンク:http ://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html 。

4

1 に答える 1

1

もちろん、いくつかの違いがありますmatchlike

つまり:

SELECT *, MATCH(Keywords) AGAINST('mouse') AS Score
FROM fs_Files
WHERE MATCH(Keywords) AGAINST('mouse')
ORDER BY score DESC;

あまりにも

SELECT *, MATCH(Keywords) AGAINST('mouse') AS Score
FROM fs_Files
WHERE Keywords like '%mouse%'
ORDER BY score DESC;

Mysql Match をご覧ください: http://dev.mysql.com/doc/refman/5.0/es/fulltext-search.html

それらの違いを見てみましょう (マッチとライク): Mysql マッチ...対シンプルな「%term%」

于 2012-11-07T18:39:58.990 に答える