表構造:PHPのmysqlの検索全文
Companies: id, name, city, branch, keywords, country
キーワードフィールドが一緒に名前の都市と分岐が含まれている、私は今ちょうどたとえば、ワイルドカードとLIKEを使用する「%ミュージックロンドン%」は「ロンドンmusicfactory」を返します
しかし、ユーザがVini & Magraineをロンドン(レストラン)で検索したいとして、入力が 'vini londen'であった場合、それは見つからなかったが、ユーザが 'magraine london'を挿入した場合発見されます。
問題はprobキーワードの順番です。今ではフルテキスト検索に変換する予定です。キーワードフィールドにインデックスを作成しました。また、キーワードフィールドはスマートなアイデアですか?それが正しい結果を返すされていませんが
SELECT id, name, branch FROM companies WHERE MATCH(keywords) AGAINST(? IN BOOLEAN MODE) AND country = ? LIMIT 7
:
私の主な質問は、私はこのクエリで全文検索を作成し、ありますか?すべての実用的なソリューションの中で最も優れたものは何ですか?
読んでいただきありがとうございます。
ここであなたが言ったことを再確認できますか?データベースはinnoDBですか?一致する場合は、あなたのために動作しませんあなたは回避策を検討する必要があります。確認できますか?それ以外に、自分で定義した一連の演算子に基づいてクエリ文字列を作成することができます。正規表現を使用すると、検索用語の中の特定のもの(例:引用符やコンマなど)を簡単に特定し、それを使って用語との一致を変更する必要があるかどうかを判断することができます。 –