【问题标题】:Django-Haystack elasticsearch error in index_querysetindex_queryset 中的 Django-Haystack elasticsearch 错误
【发布时间】:2013-02-11 10:24:51
【问题描述】:

当尝试在 django-haystack 上为 elasticsearch 建立索引时,我收到错误(下面的完整回溯)

TypeError: index_queryset() got an unexpected keyword argument 'using'

它在 Python 2.6、Django 1.4、ElasticSearch 0.20.2 上。之前我也遇到过类似的prefetch error,就是pyelasticsearch和requests库版本不匹配的情况。我试图将请求降级到 0.13,但没有效果。 pyelasticsearch 目前是 0.3

非常感谢任何帮助!

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/var/www/myproj/myproj-env/lib/python2.6/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/var/www/myproj/myproj-env/lib/python2.6/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/var/www/myproj/myproj-env/lib/python2.6/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/var/www/myproj/myproj-env/lib/python2.6/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/var/www/myproj/myproj-env/src/django-haystack/haystack/management/commands/update_index.py", line 184, in handle
    return super(Command, self).handle(*items, **options)
  File "/var/www/myproj/myproj-env/lib/python2.6/site-packages/django/core/management/base.py", line 341, in handle
    label_output = self.handle_label(label, **options)
  File "/var/www/myproj/myproj-env/src/django-haystack/haystack/management/commands/update_index.py", line 210, in handle_label
    self.update_backend(label, using)
  File "/var/www/myproj/myproj-env/src/django-haystack/haystack/management/commands/update_index.py", line 239, in update_backend
    end_date=self.end_date)
  File "/var/www/myproj/myproj-env/src/django-haystack/haystack/indexes.py", line 157, in build_queryset
    index_qs = self.index_queryset(using=using)
TypeError: index_queryset() got an unexpected keyword argument 'using'

【问题讨论】:

  • 你用的是什么版本的 Haystack?
  • 几个月前有 1.0,这就是我在本地拥有的。当前版本是 0.3 - 这是我试图在服务器上运行的版本。我已经设法解决了这个问题,只需将 的 haystack 源代码覆盖在 之上。所以,结论是: 可以在所有先决条件(pyelasticsearch、simplejson 和 requests)的最新版本中顺利运行,而 则不能

标签: elasticsearch django-haystack


【解决方案1】:

问题出在 django-haystack 的版本上。当前版本是0.3,几个月前是1.0,有点误会。

我解决问题的方法简单明了 - 安装最新版本 (0.3),然后获取旧版本(在本例中为 1.0)并简单地覆盖 haystack 源代码。

结论:“较旧的 1.0”适用于所有先决条件(pyelasticsearch、simplejson 和请求)的最新版本,而“较新的 0.3”则不能

【讨论】:

    猜你喜欢
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2014-09-24
    • 2015-04-28
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多