7

Elasticsearchバックエンドを使用してhaystacksearchをセットアップしようとしていますが、次のエラーが発生します。

./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のpyelasticsearchHEADを実行しています

構成:

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

誰か助けてもらえますか?

4

2 に答える 2

6

愚かな私。Indexクラスをindexes.indexableから拡張しませんでした。haystack2の要求に応じて、haystackは単にインデックスを取得せず、通知なしに正しく終了しました。エラーメッセージはやや誤解を招く可能性があります。インデックスがすでに存在するかどうかに関係なく、rebuild_indexを呼び出すと、Haystackは常にそれを提供するようです。

于 2012-12-12T12:44:43.170 に答える
1

curlを使用してインデックスを作成し、インデックスを再構築する代わりに./manage.pyupdate_indexを使用して1日を節約します。

于 2012-12-11T09:46:06.730 に答える