在一个典型的Rails场景中,我只想要返回第一个且只有一个记录,我会说:
SomeModel.find(:first, :conditions => {:some_field => 'some_value'})
我怎么用think_sphinx问这个?我想或者希望它会像:
SomeModel.search :conditions => {:limit => 'first', :some_field => some_value}
但是,我相当肯定这不会起作用,因为它只是一个如意的猜测。有线索吗?
答案 0 :(得分:2)
如果您需要搜索任何字段,请尝试以下操作:
SomeModel.search "search term", :star => true, :page => 1, :per_page => 1
但如果您需要某些订单,例如'name'列:
SomeModel.search "some_value", :order => "name DESC", :star => true, :page => 1, :per_page => 1
如果您需要搜索特定字段
SomeModel.search :conditions => {:some_field => 'some_value'}, :order => "name DESC", :star => true, :page => 1, :per_page => 1
答案 1 :(得分:1)
然而,可以使用thinking-sphinx获得第一个匹配值,例如:
Article.search('sphinx relevance', :match_mode => :all).first