【问题标题】:Django Haystack and Woosh not working on web requests but working on django shell on production serverDjango Haystack 和 Woosh 不处理 Web 请求,但在生产服务器上处理 django shell
【发布时间】:2012-10-03 22:53:39
【问题描述】:

在我的生产服务器上,当我搜索网页时,我没有使用 haystack 获得任何搜索结果,但它可以正确构建索引,并且我可以使用 django shell 上的 haystack api 检索结果。

没有抛出异常,我根本没有得到任何结果。

在我的本地服务器上一切正常。

唯一明显的区别是生产服务器使用 fcgi,而本地服务器使用 wsgi。

我这辈子都搞不清楚到底发生了什么。有什么想法吗?

【问题讨论】:

  • 搜索索引文件夹的权限是什么?您的 shell 会话以您的任何用户身份运行,但您的 wsgi 会话可能以另一个用户身份运行 - 可能是 uwsgi 或其他用户。如果该用户无法读取您的 whoosh 索引文件夹,它将失败。
  • 感谢@Spacedman。我确定我尝试过 - 我有目录 777'ed 但将其更改为由 apache 拥有。仅凭这一点并不能解决问题。我将 import haystack haystack.autodiscover() 从 search_sites.py 移动到 urls.py 并且搜索开始正常工作。

标签: django django-haystack whoosh


【解决方案1】:

我通过将搜索索引目录归 apache 并移动解决了这个问题:

import haystack
haystack.autodiscover()

从 search_sites.py 到 urls.py

我仍然不完全明白为什么搜索现在可以正常工作,但我很高兴!

【讨论】:

  • 你有没有将 haystack_site_conf 修改为这个HAYSTACK_SITE_CONF = 'urls'
猜你喜欢
  • 2010-10-25
  • 2021-08-16
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多