0

类似于这些:sphinx-not-indexingthinking-sphinx 在控制台中返回空结果类似这里

问题描述是这样的:我无法使用 Sphinx 的任何参数得到任何结果。我有一个 hdd 脚手架,当我尝试使用 sphinx 在 rails 控制台中执行搜索时,我得到 [],即使我知道数据库中有项目也是如此。如果我执行 Hdd.search(),我应该得到与 Hdd.all 相同的结果,但我得到的是 []。我看到了一篇关于做 Hdd.search().to_a 的帖子,但这对我来说并没有什么不同,我得到了 nil。对于其他人来说,他们有时在网页上得到的结果与他们的 rails 控制台不同,但对我来说不是这样。我的网站也有搜索功能,它也产生 [] 。

有趣的是,从它上次工作到现在它失败了,我所做的只是添加一些小的修改——即更改模型和视图,进行一些迁移,然后安装一个新插件,carrierwave。现在,似乎在所有这些之间,搜索不起作用。我已经重新启动,重建,重新索引思考狮身人面像,但无济于事。我也重新启动了服务器,甚至在 webrick 而不是 apache 下运行它,但问题基本上保持不变。

输出:

耙 ts:重建

using config file '/home/adam/RailsForensicsHardDriveApp/ForensicsHDD/config/development.sphinx.conf'...
indexing index 'hdd_core'...
collected 6 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 6 docs, 292 bytes
total 0.006 sec, 47510 bytes/sec, 976.24 docs/sec
indexing index 'hdd_delta'...
collected 0 docs, 0.0 MB
total 0 docs, 0 bytes
total 0.003 sec, 0 bytes/sec, 0.00 docs/sec
skipping non-plain index 'hdd'...
total 4 reads, 0.000 sec, 3.8 kb/call avg, 0.0 msec/call avg
total 14 writes, 0.000 sec, 2.5 kb/call avg, 0.0 msec/call avg
Started successfully (pid 6700).

我注意到我在上面的 ^ 中有一行写着“跳过非普通索引'hdd'......

我不知道这意味着什么,但听起来它没有做它应该做的事情。

我曾尝试使用 ruby​​ debug 调试该功能,但尚未产生任何成果。我希望其他人从我发布的内容中得到一些可以帮助我的建议。

我已经运行了 rake rails:update 我已经卸载并重新安装了 thinking-sphinx gem

这个要点中,我包含了相关文件。你可以看到,在模型中,我试图通过扩展大小来消除连接空间太小的问题,但这也没有什么不同。

我已经阅读了有关与乘客一起设置狮身人面像的deltas 文档和常见问题解答(是的,我正在与乘客一起运行轨道),我不觉得这两个都是问题,因为我在狮身人面像神秘地运行之前运行得很好(对我来说)停止正常运行。

老实说,我不知道为什么它不起作用。我在 git 下拥有整个项目,并且我尝试在它工作时回滚到早期版本,重建索引并执行搜索,但这似乎不起作用。我试过删除数据库并重新创建它,重新迁移,然后重建 sphinx,但这也没有奏效。

4

2 回答 2

0

跳过非普通索引“hdd”是可以的 - 这是分布式索引,不能被索引。如果您查看索引器输出

collected 6 docs, 0.0 MB

这意味着索引中只有六个文档。如果您没有从 Sphinx 收到任何错误,则可能是您没有任何与您的搜索匹配的文档。

于 2012-07-13T06:51:16.057 回答
0

我发现当我执行 sudo apt-get purge sphinxsearch 并因此重新安装它时,它以某种方式阻止了服务器盲目地继续执行错误。如果您查看我发布的模型,您会发现我有一个用于开发类型的特殊字段,我是通过迁移移入的。我认为这会阻止它工作,因为在我重新安装 thinking-sphinx (作为 gem 和 apt 包)后,我遇到了一些非常奇怪的错误。重新安装后,删除数据库并编辑迁移以使其现在是 hd_type 而不是 type,我能够成功地重新索引 hdd 并填充搜索结果。我知道这并不完全准确,

请在此处查看我的答案,该答案链接回本文,以防它提供的上下文与此答案的作用不同,我认为它没有。

于 2012-07-13T01:04:04.173 回答