3

スラッシュを含む製品 (ac/dc など) を mysql の照合で検索する際に問題が発生しています。

これに影響を与えている特定の設定があるようです。デフォルト設定の私のウィンドウの xammp では、これらのそれぞれがうまく機能します:

MATCH (content) AGAINST ('+ac/dc*' IN BOOLEAN MODE)

MATCH (content) AGAINST ("+ac/dc*" IN BOOLEAN MODE)

MATCH (content) AGAINST ('"+ac/dc*"' IN BOOLEAN MODE)

MATCH (content) AGAINST ("'+ac/dc*'" IN BOOLEAN MODE)

MATCH (content) AGAINST ('+ac\/dc*' IN BOOLEAN MODE)

しかし、Linux システム上にある実稼働サーバーではそれらのどれも動作しません (どのディストリビューションかはわかりませんが、plesk の下にあります)。

そして、「働かない」とはどういう意味ですか。クエリは 0 行を返します。本番サーバーの ft_min_word は 2 です。

4

2 に答える 2

1

これはサーバーの問題でした。今日に至るまで、どのように修正できるかはまだわかりません。私がしたことは、システム全体の動作を変更することでした。

検索語を保存する検索テーブルがあり、そこでスラッシュを削除して AC/DC が ACDC になり、検索時にクエリを変更してスラッシュを再度削除して、ACDC と一致させて正しい行を見つけようとします。

于 2012-12-17T12:27:02.283 に答える
0

XAMP と運用サーバーの両方のストレージ エンジンを見てください。全文検索には制限がありますhttp://dev.mysql.com/doc/refman/5.1/en/fulltext-restrictions.html。また、全文検索ではテーブル定義が一致している必要があります。

二重引用符は特殊文字ですが、スラッシュは特殊文字ではありません。したがって、たとえば+ac/dc*とは異なる結果セットを提供する必要があります。"+ac/dc*"

それとは別に、私が考えることができる唯一の違いは、テーブルの内容が異なることです。

于 2012-10-29T08:41:37.890 に答える