Ruby on rails 认为斯芬克斯没有为delta=true重新编制索引

Ruby on rails 认为斯芬克斯没有为delta=true重新编制索引,ruby-on-rails,ruby,sphinx,thinking-sphinx,Ruby On Rails,Ruby,Sphinx,Thinking Sphinx,我在思考斯芬克斯时遇到了一个问题 我有以下表格结构 title => varchar desc => varchar is_deleted => boolean 这是我的丹宁指数 define_index do indexes title, :sortable => :insensitive has :is_deleted, :type=>:boolean where "is_deleted = false" set

我在思考斯芬克斯时遇到了一个问题

我有以下表格结构

title => varchar
desc => varchar
is_deleted => boolean
这是我的丹宁指数

define_index do
      indexes title, :sortable => :insensitive
      has :is_deleted, :type=>:boolean
      where "is_deleted = false"
      set_property :delta => true
    end
在这里,当我编辑主题并编辑的名称搜索主题时,我得到主题,当我用旧名称搜索主题时,我得到相同的主题。例如,如果前面的主题名为“Foo”,而我将“Foo”重命名为“Woo”,在搜索“Woo”时,我得到“Woo”,但在搜索“Foo”时,我再次得到“Woo”。此外,当我集被删除时=>true搜索“Woo”I不获取任何内容,但在搜索“Foo”时,我再次获取“Woo”。我不明白为什么会这样?斯芬克斯是否在创建新索引时不删除旧索引delta=true创建新索引


再次在重建sphinx时,我没有遇到这样的问题,并且所有的delta都按预期设置为false。

当您知道主索引的结果存在于您的delta索引中时,请使用sphinx sql\u query\u killist终止主索引的结果,类似于以下内容:

我希望您观察rails日志,无论是否生成索引。此外,您还可以在索引发生之前和之后添加调试语句,如logger.info object.inspect,即对象保存调用之后的对象保存b4 n。您的模型中是否有字段
delta
(布尔字段)?没有delta可以正常工作,但它不会重新索引,正如我所说的,如果使用旧主题名称搜索,我可以看到新主题,即使它被更新了。我们需要不同的斯芬克斯设置吗?