Ruby on Rails -> ThinkingSphinx -> SphinxSearch -> Mysql
I want to search the titles table. The expected user keyword will not be an exact match, it will be a partial match.
search_key = "android samsung galaxy ace black phones"
Searching against the titles table,
titles(table)
id | titles
1 | nokia c6
2 | samsung galaxy ace
3 | samsung galaxy ace y
4 | nokia lumia 800
5 | samsung monte
6 | samsung galaxy note
case - 1 :
Title.search search_key, :match_mode => :all
=>No results
Comment: Bad
case -2 :
Title.search search_key, :match_mode => :any
=>[samsung galaxy ace, samsung galaxy ace y, samsung monte, samsung galaxy note]
Comment: OK, but not relevant, the user wanted only "samsung galaxy ace" which she specified in her keywords explicitly. Why show other samsung mobiles ?
case -3 :
Title.search 'search_key/3',:match_mode => :extended
=> samsung galaxy ace
Comment: Bingo!, but hard coded.
Question:
Now, I should know how many number of keywords will get an exact match in the titles table. (For example, its 3 for "samsung galaxy ace" in "android samsung galaxy ace black phones")
How do I go around this?. Sphinx handles this?. If not what to do ?