0

由于某种原因,没有显示在 rake thinking_sphinx:index(或配置)之后添加到数据库的用户。我尝试重新启动服务器,停止思考狮身人面像然后重新启动和配置。仍然遇到同样的问题。

当我运行 rails c 并执行 User.search 时,我只能从运行索引/配置之前创建的数据库中获取结果。

我刚刚刷新了数据库以通过运行将这个项目投入生产。

rake db:reset

然后我重新启动了服务器,我遇到了这个问题。当我运行配置时,我在我的 searchd.log 文件中得到了这个:

[Tue Jan 15 18:56:02.491 2013] [ 1742] rotating indices (seamless=1)
[Tue Jan 15 18:56:02.499 2013] [ 1742] rotating index 'user_core': success
[Tue Jan 15 18:56:02.506 2013] [ 1742] rotating index 'synonym_delta': success
[Tue Jan 15 18:56:02.512 2013] [ 1742] rotating index 'synonym_core': success
[Tue Jan 15 18:56:02.519 2013] [ 1742] rotating index 'bar_delta': success
[Tue Jan 15 18:56:02.525 2013] [ 1742] rotating index 'bar_core': success
[Tue Jan 15 18:56:02.525 2013] [ 1742] rotating finished

这在 searchd.query.log 中:

[Tue Jan 15 18:56:06.556 2013] 0.000 sec [ext/2/rel 8 (0,20)] [user_core]
[Tue Jan 15 18:56:06.566 2013] 0.001 sec [ext/2/rel 8 (0,20)] [user_core]
[Tue Jan 15 18:56:06.575 2013] 0.000 sec [ext/2/rel 8 (0,20)] [user_core]

在刷新数据库并重新启动服务器之前,我从来没有遇到过搜索不返回更新结果的问题。在此期间,没有任何代码被更改。任何关于可能是什么问题的见解将不胜感激。另外,如果您需要更多细节,请告诉我,我可以发布更多信息。我不愿意张贴太多,甚至让人们无法阅读。所以让我知道什么有助于更好地理解我的问题。

**更奇怪的是,我在使用任何其他模型(例如场地)时都没有遇到这个问题。保存到数据库后通过搜索更新和显示...

- - - - - - - - - - - - - - 更新 - - - - - - - - - - - --------------

所以我运行了 rails 控制台,如果我运行

User.search

我得到 10 个结果,以在运行 ts:rebuild 之前添加的最后一行结束。但是当我运行时:

User.all

我得到了 11 个结果,其中包括数据库中的所有行。不管最后一次运行 ts:rebuild / index / configure ...

谢谢

艾伦

4

1 回答 1

1

也许我不明白。当您通过 rake ts:build 构建索引时,然后您有新用户注册您的 Web 应用程序或其他任何内容,他们不应该出现在 sphinx 索引文件中。无需您执行 rake ts:rebuild 就可以显示它们的唯一方法是,如果您正在运行 delta 索引,这会思考 sphinx 支持,这将创建 delta 索引文件,然后将这些文件合并到您的主索引文件中一次你做一个 rake ts:rebuild。

于 2013-01-15T21:05:43.787 回答