0

サイトの検索エンジンを最適化しようとしています。結果を入力する現在の mySQL クエリは「問題なく」動作しますが、実際にはそれほど優れたものではありません。たとえば、「A&M」、「ESY」、「DVS」などのクエリは、データベースの一部であり、「名前」列に格納されていますが、検索結果として取り上げられることはありません。ただし、「Exist」や「Hollywood Designs」などの検索クエリは期待どおりに見つかります。

以下のクエリを修正して、結果をより正確に入力する方法があるかどうか疑問に思っていました.b / c現在、多くの結果が除外されており、期待どおりに機能していません. これについて何か助けていただければ幸いです。

これは、検索結果を入力するために使用している現在のクエリです。

$results = mysql_query("SELECT キーワード,名前 FROM ファイル WHERE MATCH (キーワード,名前) AGAINST ('$searchfor')") または die(mysql_error());

4

1 に答える 1

0

あなたの問題は、mysqlがデフォルトで持っている単語の長さの制限に関連していると思います。たとえばA&M、1 語ではなく 2 語です (the&は無視されます)。通常、この制限 ( ft_min_word_len) は 3 に設定されています。

この mysql マニュアルでは、構成を微調整する方法を確認できます。1 に設定ft_min_word_len: http://dev.mysql.com/doc/refman/5.5/en/fulltext-fine-tuning.html

重要な補足事項:

  • フルテキスト インデックスを再作成する必要があります。そうしないと、検索が変更されません。
  • 巨大なデータ セットを使用する場合は、この変更によってフルテキスト クエリの速度が大幅に低下する可能性があることに注意してください。
于 2012-06-30T18:40:11.860 に答える