Ruby on Rails-> ThinkingSphinx-> SphinxSearch-> Mysql
タイトルテーブルを検索したい。予想されるユーザーキーワードは完全一致ではなく、部分一致になります。
search_key = "android samsung galaxy ace black phones"
タイトルテーブルを検索して、
タイトル(表)
id | タイトル
1 | ノキアc62
| サムスンギャラクシーエース
3| サムスンギャラクシーエースy4
| nokia lumia 800
5 | サムスンモンテ
6| サムスンギャラクシーノート
ケース-1:
Title.search search_key, :match_mode => :all
=>No results
コメント:悪い
ケース-2:
Title.search search_key, :match_mode => :any
=>[samsung galaxy ace, samsung galaxy ace y, samsung monte, samsung galaxy note]
コメント:わかりましたが、関連性はありません。ユーザーは、キーワードで明示的に指定した「samsunggalaxyace」のみを望んでいました。なぜ他のサムスンの携帯電話を表示するのですか?
ケース-3:
Title.search 'search_key/3',:match_mode => :extended
=> samsung galaxy ace
コメント:ビンゴ!ですが、ハードコーディングされています。
質問:
ここで、タイトルテーブルで完全に一致するキーワードの数を知る必要があります。(たとえば、「android samsung galaxy aceblackphones」の「samsunggalaxyace」の3つ)
どうすればこれを回避できますか?Sphinxはこれを処理しますか?そうでない場合はどうすればよいですか?