gpt4 book ai didi

ruby-on-rails - 在 ruby​​ 代码中更新思维 sphinx 索引

转载 作者:数据小太阳 更新时间:2023-10-29 06:59:23 25 4
gpt4 key购买 nike

我有一个应用程序,它在 ubuntu 12.04 上运行,带有 nginx+passenger在我的方法中,我尝试重建 sphinx 索引:

  def update_sphinx_index
Rails.application.load_tasks
Rake::Task['ts:rebuild'].invoke
redirect_to admin_mainpage_path
end

我也试试:

`rake ts:index`

但什么也没发生,sphinx 索引没有重建。我做错了什么?也许我需要使用一些特权或其他东西来执行此操作,因为当我在命令终端中执行 rake ts:rebuild 时一切正常,并且索引重建。

最佳答案

首先,我不太喜欢从 Controller 调用 sphinx reindex 的想法。这里的最佳实践是使用增量进行部分索引(带有 resque 的增量是几乎实时索引的一个很好的解决方案),然后偶尔重新索引一次以压缩文件。

但是如果出于任何原因你真的需要从 Controller 运行它,我会说有两件事需要考虑。一个是你可能不在正确的目录中,所以你可以尝试发出系统调用更改到目录然后执行 rake,如

`cd /path/to/your/app rake ts:index`

除此之外,如果您遵循最佳实践,则执行您的网络服务器的用户将是一个低权限用户,类似于属于 www-data 组的用户。该用户很可能没有执行 rake 或写入索引文件的权限,因此请确保启动您的网络服务器的用户具有正确的权限。

关于ruby-on-rails - 在 ruby​​ 代码中更新思维 sphinx 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19977958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com