【发布时间】:2011-08-28 16:57:18
【问题描述】:
最近我提出了很多思考狮身人面像的问题。这是另一个:
在我的某些搜索中,我只想查询索引定义中包含的所有字段中的一部分。我似乎找不到任何关于此的内容,最近的事情是将全局搜索限制为特定模型。
那么.. 是否可以只查询索引中给定的字段子集?
【问题讨论】:
标签: ruby-on-rails thinking-sphinx
最近我提出了很多思考狮身人面像的问题。这是另一个:
在我的某些搜索中,我只想查询索引定义中包含的所有字段中的一部分。我似乎找不到任何关于此的内容,最近的事情是将全局搜索限制为特定模型。
那么.. 是否可以只查询索引中给定的字段子集?
【问题讨论】:
标签: ruby-on-rails thinking-sphinx
这可以通过 Sphinx 的extended match syntax:
Model.search "@(name,description) ruby pancakes", :match_mode => :extended
其中名称和描述是您要搜索的字段,“ruby pancakes”是搜索查询。
【讨论】:
现在,当 Sphinx v3 发布时,documentation 表示默认打开扩展模式,因此您只需执行以下操作:
Model.search "@(name,description) ruby pancakes"
【讨论】:
不确定 Thinking Sphinx,但我知道如果您通过 SphinxQL 直接点击 Sphinx,那么您可以指定要匹配的字段。
如果 TS 没有向您公开此功能,我会感到惊讶...
【讨论】:
我有一段时间没有使用 TS,但我记得您可以创建单独的索引,其中包括您在主索引上使用的字段子集。我不认为 Sphinx 区分您用于构建索引的字段,因为这就是您使用全文搜索服务器的原因 - 一次搜索多个字段上的内容。
所以只需检查如何使用其他字段构建新索引以及如何使用这个新索引而不是默认索引。
【讨论】: