为Thinking Sphinx中的搜索条件索引计算字段

时间:2009-07-18 02:02:21

标签: mysql ruby-on-rails ruby full-text-search thinking-sphinx

我有一个产品模型设置,我正在尝试使用Thinking Sphinx进行搜索。该模型具有一个名为status的属性,在指定日期期间可以是Active,Not active或Active。

我希望能够将搜索结果限制为有效的产品。即状态为活动状态或在日期期间处于活动状态,当前时间介于这些日期之间。

我是Rails的初学者,所以我正在寻找关于如何实现这一点的建议。我想在我的模型中设置一个布尔方法来计算这个逻辑,但我认为这不是Sphinx可以索引的。

我使用MySQL作为数据库服务器。

有没有人有任何好主意?

2 个答案:

答案 0 :(得分:4)

你是对的,你的模型上的ruby方法不能被sphinx访问。但是,您可以将该方法重新创建为sphinx属性。这些可以很容易地使用像这样的SQL片段:

class Person < ActiveRecord::base
  ...


  define_index do
    has "status = 'active' and now() > start_date and now() < end_date", :as => :active, :type => :boolean
  end

  ...
end

使用字符串指定类似的字段或属性与在构建SQL查询时指定自定义列相同。

答案 1 :(得分:0)

相关问题