带有索引的Thinking Sphinx问题的通配符搜索

时间:2011-07-20 07:47:18

标签: thinking-sphinx

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

在这种情况下,如果我只搜索电子邮件,那么它将从指定的所有索引中搜索。

EG:

email ="*me*" 
Contact.search email

显示自first_name,last_name和email。 但它应该只显示电子邮件

从指定索引中仅搜索一个索引的解决方案是什么。

1 个答案:

答案 0 :(得分:1)

只需快速更正 - 您希望搜索特定字段,而不是特定索引。

思考Sphinx可以使用:conditions选项执行此操作 - 请尝试以下操作:

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

思考Sphinx还可以自动添加通配符到你给它的每个单词的两端:

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