0

我想写这样的东西:

 keywords ['apple', 'peach'], :fields => [:fruits]

如果我有两个不同的实例,一个是“apple”,另一个是“peach”,我希望它们都在结果中返回。

我已经尝试过上面提到的语法,但我只得到了第一个术语('apple')的匹配项。

太阳黑子甚至支持这一点吗?我无法找到它,这并不意味着我没有错过任何东西。

4

1 回答 1

1

假设您有两个模型实例,一个是name苹果,第二个是name同等桃子,第三个是名为“苹果桃子”的实例。如果您想获得其中任何一个,您应该执行类似于以下的操作:

Product.search do
  minimum_match 1
  keywords 'apple peach' # btw, fulltext is an alias to keywords
end

现在您将获得所有三个结果(至少您应该获得),关键部分是minimum_match,没有那个 Sunspot 将使用其默认设置,即仅返回“完整”匹配项(找到的所有短语)。

于 2013-10-21T13:59:01.223 回答