在我的web应用程序中,我需要在items
表上执行3种类型的搜索,条件如下:
items.is_public = 1
(使用title
字段进行索引)--可以检索许多结果(基数比其他cases)items.category_id = {X}
(使用title
+ private_notes
字段进行索引)高得多--通常小于100 resultsitems.user_id = {X}
(使用title
+ private_notes
字段进行索引)--通常小于100个结果。
我找不到办法让狮身人面像在所有这些情况下都能工作,但在第一种情况下效果很好。我是否应该仅在第一种情况下使用狮身人面像,而在MySQL中使用普通的“慢”全文搜索(至少因为2-3种情况下基数较低)?
还是只有我和狮身人面像能做任何事?
发布于 2010-05-19 11:08:54
如果不完全了解你们的模型,我可能会遗漏一些东西,但这是怎么回事:
class item < ActiveRecord::Base
define_index do
indexes :title
indexes :private_notes
has :is_public, :type => :boolean
has :category_id
has :user_id
end
end
1)
Item.search(:conditions => {:title => "blah"}, :with => {:is_public => true})
2)
Item.search("blah", :with => {:category_id => 1})
3)
Item.search("blah", :with => {:user_id => 196})
https://stackoverflow.com/questions/2864429
复制相似问题