私は奇妙な問題があります - MySQL 5.1とフルテーブルインデックスのテーブルを使用します。 mysqlの設定では、ft_min_word_len
は2に設定されています(したがって、少なくとも2文字の長さの単語がインデックスされます)。MySQL:MATCH AGAINSTはすべての結果を表示していません
以下のクエリは単純化されていますが、元のクエリと同じ効果があります。
私が検索する場合:
SELECT company FROM my_table WHERE MATCH (company) AGAINST ('intern*' IN BOOLEAN MODE)
私はそれの名前で "INTERNAT" との企業を取得 - "インターナショナル社"、 "Internship.org" のように。テーブル「旅正義&」にエントリがあるが、私はどんな結果を得ることはありません
SELECT company FROM my_table WHERE MATCH (company) AGAINST ('just*' IN BOOLEAN MODE)
:
は、しかし、私はを検索するとき。
しかし、私はを検索したとき:
SELECT company FROM my_table WHERE MATCH (company) AGAINST ('travelling*' IN BOOLEAN MODE)
私は-entry /正しい結果を "旅正義&" を取得します。
の代わりにMATCH-AGAINST
を検索しても、正しい結果が得られます。
誰かがアイデアを持っていますが、2番目の言及されたクエリで正しい結果が得られないのはなぜですか?
あなたを持っています'just'は予約語ではないことを確認しましたか? – BenOfTheNorth
はい、http://dev.mysql.com/doc/refman/5.1/en/reserved-words.htmlのリストにありません。 – Stefan