【问题标题】:Searching multiple columns with Sphinx使用 Sphinx 搜索多个列
【发布时间】:2010-11-03 16:53:07
【问题描述】:

我有带列的模型产品:

name, number, description

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

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

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

我去了狮身人面像页面,发现如下:

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

而且我似乎不明白 sphinx 的工作原理。当我执行搜索时

*pencil* *123*

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

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

没有找到结果。

按列搜索是否有所不同?

【问题讨论】:

    标签: ruby-on-rails sphinx thinking-sphinx


    【解决方案1】:

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

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-24
        相关资源
        最近更新 更多