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

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

我设置了一个产品模型,我正尝试使用 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/

相关文章:

ruby:curses:程序结束时不清除屏幕?

Ruby Prawn 将元数据添加到模板

mysql - 如何使用子字符串加速此 sql 查询?

mysql - 从 shell 查询 MySQL 数据库

ruby-on-rails - after_create 回调在测试中不起作用,但在控制台中起作用

javascript - 添加不需要用户模型的“赞”按钮

jquery - 从循环中的最后一个元素中删除逗号

c# - LINQ:WHERE 子句中的 IF 条件不起作用

php - 我如何在查询中写入不大于

mysql - 从 Rails 中的多连接查询创建 JSON 报告