我有一个模型学校,对10或12个不同的索引进行了雪貂索引。
在一个特定的搜索中,我想只返回与以下字段之一匹配搜索词的学校:["name", "postcode", "urn"]
(urn是一种uid类型的字段)
例如,搜索“格兰奇”应该返回名称中有“格兰奇”的学校但不返回在其地址中有“格兰奇”的学校(除非它当然也在他们的名字中)。
如果只有一个字段(例如名称),我可以通过
实现School.find_with_ferret("name:#{term}")
但是,我无法弄清楚如何使用字段列表来完成此操作。我以为我可以使用“或”语法,比如
School.find_with_ferret("name:#{term} || postcode:#{term} || urn:#{term}")
或
School.find_with_ferret("name:#{term} or postcode:#{term} or urn:#{term}")
但这些都不起作用。有人知道怎么做吗?谢谢,最大
答案 0 :(得分:0)
来自acts_as_ferret文档:
ActsAsFerret::define_index( 'my_index',
:models => {
SomeModel => {
:fields => {
:name => { :boost => 4, :store => :yes, :via => :ferret_title },
:foo => { :store => :no, :index => :untokenized },
:baz => { :store => :yes, :via => :ferret_content }
}
}
} )
请注意“字段”定义
答案 1 :(得分:0)
如果有人用同样的问题搜索到这个问题,我找到了答案(在雪貂文档中,doh)。
School.find_with_ferret("name|postcode|urn:#{term}")