django - IndexMissingException - 带 Elasticsearch 的 django haystack

标签 django elasticsearch django-haystack

我正在尝试使用 elasticsearch 后端设置 haystack 搜索 我收到以下错误:

./manage.py rebuild_index
 ...
Failed to clear Elasticsearch index: (404, u'IndexMissingException[[haystack] missing]')

但是,下面的命令有效:

curl -XPUT http://33.33.33.1:9200/haystack
{"ok":true,"acknowledged":true}
curl -XGET http://33.33.33.1:9200/haystack/test/something
{"_index":"haystack","_type":"test","_id":"something","exists":false}

现在,在运行之后

./manage.py rebuild_index
...
Failed to clear Elasticsearch index: (404, u'IndexMissingException[[haystack] missing]')

再次,按预期工作的命令突然出现以下错误:

curl -XGET http://33.33.33.1:9200/haystack/test/something
{"error":"IndexMissingException[[haystack] missing]","status":404}

按照其他地方的建议我也试过了:

from django.core import management
from haystack import connections
backend = connections['default'].get_backend()
backend.setup_complete = False
backend.existing_mapping = None
management.call_command('rebuild_index', interactive=False, verbosity=0)

同样的结果:

{"error":"IndexMissingException[[haystack] missing]","status":404}

我正在运行 Django 1.4.2,来自 github 的 django-haystack HEAD 和来自 github 的 pyelasticsearch HEAD

配置:

HAYSTACK_CONNECTIONS = {
  'default': {
    'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
    'URL': 'http://33.33.33.1:9200/',
    'INDEX_NAME': 'haystack',
  },  
}  

谁能帮帮我?

最佳答案

我傻了。我没有按照 haystack 2 的要求从 indexes.Indexable 扩展我的 Index 类。因此 haystack 根本没有获取我的索引并正确完成,恕不另行通知。 该错误消息有些误导。如果您调用 rebuild_index,Haystack 似乎总是提供它,无论索引是否已经存在。

关于django - IndexMissingException - 带 Elasticsearch 的 django haystack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13680786/

相关文章:

python - Django注册,模板

python - 如何使用 SHELL_PLUS_DONT_LOAD? django-extensions==1.6.1, Django==1.9.2

java - 在hibernate搜索elasticsearch中实现 "random"排序

python - Haystack Elasticsearch使用LTE过滤日期

javascript - 为什么在这种情况下js函数需要在html文件中并且不能分开?

python - 模型方法的详细名称

elasticsearch - 使用ELK处理来自同一台机器的多个日志

Elasticsearch NEST 2 如何正确映射和使用嵌套类和批量索引

elasticsearch - 无法使用 haystack/elasticsearch 进行部分词搜索

Django Haystack - 如何提升一个领域?