2009-07-01 19 views
1

私は私に好きな結果を与えてくれていないようなかなり単純なクエリを持っています。私は、フルテキスト検索を使用して、名前、住所、または都市名でレストランを探すことをユーザーに許可しようとしています。ここMySQLフルテキスト検索が期待どおりに一致しません

は私のクエリです:

SELECT ESTAB_NAME, ESTAB_ADDRESS, ESTAB_CITY 
FROM restaurant_restaurants rr 
WHERE 
    MATCH (rr.ESTAB_NAME, rr.ESTAB_ADDRESS, rr.ESTAB_CITY) 
    AGAINST ('*new* *hua*' IN BOOLEAN MODE) 
LIMIT 0, 500 

新華は、テーブル内に存在するレストランです。しかし、私が 'tingho'の検索をすると、私は期待した結果を得ています。

何が起こっているのですか? 私はMySQLバージョン5.0.41でMyISAMストレージエンジンを使用しています

+0

MyISAMではなくMyISAMを意味します。 –

答えて

1

私はマイケルが正しいと思っていますが、実際に探しているタイトルにない限り、*****文字を削除することもできます。 MATCH AGAINSTには、 "match all"タイプのパラメータは必要ありません。

+0

彼はブールモードを使用しているため、*は任意の文字列のワイルドカードのように機能します。しかし、それはとにかく使用しないことをお勧めします。それは通常、検索中に期待しているような行動ではないからです(少なくとも、私はそうではありません...) –

0

私の推測では、「new」はMysql Default Stop Wordです。停止単語リストを変更してレストランを取り戻す方法を見るには、Michael Madsenの2番目のリンクを参照してください。

+0

ブールモードは、ドキュメンテーションに準拠したワイルドカード、それがあったとしても、Huaのために一致するはずです。 –

関連する問題