思考狮身人面像三角洲指数不起作用

时间:2011-10-05 18:28:27

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

我已将delta列添加到我的表中:

class AddDeltaIndexToCimgs < ActiveRecord::Migration
  def change
    add_column :cimgs, :delta, :boolean, default: true, null: false
  end
end

我迁移了

我还添加了define_index:

define_index do
  indexes search_cache
  has :approved
  set_property delta: true
end

我执行了rake任务

rake ts:stop
rake ts:index
rake ts:start

rake ts:rebuild

然后我在表格中添加一条新记录,搜索它......什么都没有。 可以很好地找到核心索引记录,但delta根本不起作用。

要搜索它们,请使用以下内容:

Cimg.search query, with: {approved: true}

是的,每个Cimg都获得批准,并且在search_cache中有很多东西,新的在数据库中用delta = 1标记。我仔细检查过。

我检查了db / sphinx文件夹,创建了许多名为cimg_delta的文件。

以下是生成的配置文件:http://pastebin.com/z0fHr43k

Sphinx version: 2.0.7
Thinking Sphinx gem version: 2.0.5
Rails version: 3.1.0.rc8
Ruby version: 1.9.2p290 

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

只是一个健全性检查,但在您的config / sphinx.yml文件中 你在做什么

    development:      
      min_prefix_len: 2  

      indexed_models:
        - Article
        - Match
        - Player
        - Team
        - Group
        - Tournament
        - Ground
        - User

确保添加了任何新的索引模型,否则认为sphinx只会索引每个环境下指定的模型。我刚刚在用户模型中添加了一个define_index,并且无法弄清楚为什么在运行rake ts:rebuild时没有将其编入索引我忘了将indexed_models:user添加到shinx.yml

希望这是有帮助的,谢谢戴夫