我设置了一个产品模型,我正尝试使用 Thinking Sphinx 进行搜索。该模型有一个名为 status 的属性,在指定日期期间可以是 Active、Not active 或 Active。
我希望能够将我的搜索结果限制为有效的产品。 IE。在日期期间处于事件状态或处于事件状态且当前时间介于这些日期之间。
我是 Rails 的初学者,所以我正在寻找有关如何实现它的建议。我想过在我的模型中放置一个 bool 方法来计算这个逻辑,但我不认为 Sphinx 可以索引它。
我正在使用 MySQL 作为数据库服务器。
有没有人有什么好主意?
最佳答案
你是对的,sphinx 无法访问你模型上的 ruby 方法。但是,您可以将该方法重新创建为 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 查询时指定自定义列。
关于mysql - Thinking Sphinx 中搜索条件的索引计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1146477/