1

我有带列的模型产品:

name, number, description

为此模型定义的索引如下所示:

define_index do
  indexes :name, :sortable => true
  indexes :number
  indexes :description
  where "amount > 0"
  has :price
end

由于在描述中可能有很多随机词,我有时想将其排除在搜索之外(当用户单击复选框“不要在描述中搜索”时)。

我去了狮身人面像页面,发现以下内容:

@(name, number) *pencil* *123*

似乎我不明白狮身人面像是如何工作的。当我执行搜索

*pencil* *123*

在名称中找到“铅笔”一词,在数字中找到“123”,我得到 1 个结果。但是当我执行

@(name, number) *pencil* *123*

没有找到结果。

按列搜索是否有所不同?

4

2 回答 2

2

都是关于空间的:/这有效:

@(name,number) *pencil* *123*
于 2010-11-03T08:53:07.467 回答
2

您只能在使用:extended匹配模式时搜索字段 - 如果您使用 Thinking Sphinx 会自动设置:conditions- 但是您自己构建了一个多字段查询,因此为什么不会发生这种情况。尝试这个:

Product.search "@(name, number) *pencil* *123*", :match_mode => :extended

希望这可以帮助。

于 2010-08-03T03:17:47.050 回答