0

これは検索を実行するための私のコードです

SELECT d.deal_id,
       d.deal_title,
       d.friendly_url
FROM wp_deals AS d
WHERE MATCH (d.deal_title) AGAINST ('Ultimate Revitalisation Kit' IN BOOLEAN MODE)
GROUP BY d.deal_id

それは正常に動作します。

しかし、キットを検索すると、

SELECT d.deal_id,
       d.deal_title,
       d.friendly_url
FROM wp_deals AS d
WHERE MATCH (d.deal_title) AGAINST ('Kit' IN BOOLEAN MODE)
GROUP BY d.deal_id

以前の検索結果に kit がありましたが、何も結果が得られません。私はこのタイプの検索クエリの専門家ではありません。しかし、検索クエリで like キーワード、つまり like '%kit%' を使用しないように依頼する必要があります。だから私は反対と一致を使用しています。このタイプの高度なクエリの専門家はいますか? 優れた検索クエリにすることはできますか? 完璧にしてください。そのため、クエリのような単純なものよりも見栄えがします。

4

1 に答える 1

1

mySQL インストールの /etc/my.conf を変更する必要があります。デフォルトでは、全文検索は最小単語長として 4 文字のみを使用します。これを 3 に変更する必要があります。

ft_min_word_len = 3

また、テーブルのフルテキスト インデックスを再構築する必要があります。これを行うには、REPAIR コマンドを実行します。

REPAIR TABLE my_table QUICK;

または、インデックスを削除して再作成することもできます。

これを実行して、mysql を再起動します。検索が機能するようになりました。

于 2013-01-10T13:23:47.153 に答える