2011-07-20 8 views
1
define_index do 
    indexes :first_name, :prefixes => true 
    indexes :last_name, :prefixes => true 
    indexes :email, :prefixes => true 
    set_property :enable_star => 1 
    set_property :min_perfix_len => 1 
end 

この場合、メールのみを検索する場合は、指定されたすべてのインデックスから検索します。Thinking Sphinxのワイルドカード検索でインデックスが発生する

EG:

email ="*me*" 
Contact.search email 

FIRST_NAME、LAST_NAMEおよび電子メールから表示されます。 しかし、それはメールのみで表示されるべきです

指定されたインデックスから1つのインデックスだけを検索する解決策は何でしょうか。

答えて

1

簡単な修正 - 特定のフィールドではなく、特定のインデックスで検索したい。

とスフィンクスが:conditionsオプションを使用してこれを行うことができます考える - その次試してみる:

Contact.search :conditions => {:email => '*me*'} 

スフィンクスも自動的にあなたにもそれを与える各単語の両端にワイルドカードを追加することができます考える:

Contact.search :conditions => {:email => 'me'}, :star => true 
+0

**おかげさまで、ありがとうございました。** –

関連する問題