【问题标题】:Thinking-Sphinx not returning any results in console or via web appThinking-Sphinx 未在控制台或通过 Web 应用程序返回任何结果
【发布时间】:2012-07-13 00:39:28
【问题描述】:

与这些类似:sphinx-not-indexingthinking-sphinx returning empty results in consolesimilar here

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

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

输出:

rake 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).

我注意到上面的 ^ 中有一行写着“skipping non-plain index 'hdd'...

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

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

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

this gist 我已经包含了相关文件。可以看到,在模型中,我尝试通过扩展大小来消除连接空间过小的问题,但也没有什么不同。

我已经阅读了deltas documentation 和关于设置sphinx with passenger 的常见问题解答(是的,我正在与乘客一起运行轨道),我觉得这两个都不是问题,因为我的 sphinx 运行得很好在它神秘地(对我而言)停止正常运行之前。

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

【问题讨论】:

    标签: ruby-on-rails carrierwave thinking-sphinx


    【解决方案1】:

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

    请参阅我的答案 here 链接回本文,以防它提供与此答案不同的上下文,我认为它没有。

    【讨论】:

      【解决方案2】:

      跳过非普通索引 'hdd' 没问题 - 这是分布式索引,无法编入索引。 如果您查看索引器输出

      collected 6 docs, 0.0 MB
      

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

      【讨论】:

      • 什么搜索?那是索引操作,rake ts:rebuild,不涉及搜索。
      猜你喜欢
      • 2012-01-19
      • 2012-01-07
      • 2021-10-16
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多