2012-12-03 16 views
7

aşağıdaki hatayı alıyorum elasticsearch arka ucuyla kurulum samanlık arama çalışıyorum ile samanlık:IndexMissingException django elasticsearch

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

Ancak, aşağıdaki komutu çalışır: Şimdi

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} 

, aniden bir daha

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

çalıştırdıktan sonra başka yerlerde önerildiği gibi ben de denedim

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

:

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

Ben çalıştırıyorum: aynı sonucu

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) 

şimdi beklendiği gibi çalıştı o komut aşağıdaki hatayı veriyor Django 1.4.2, django-haystack HEAD gelen github ve pyelasticsearch HEAD gelen github

yapılandırması :

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

Herkes bana yardımcı olabilir mi?

cevap

6

Aptal. Bu nedenle samanlık samanlık 2. gerektirdiği gibi ben sadece pikap dizinimi etmedi ve başka haber vermeden doğru bitmiş indexes.Indexable benim Endeksi sınıfını genişletmek vermedi. Hata mesajı biraz yanıltıcıdır. Haystack, indeksin zaten var olup olmadığına bakılmaksızın, rebuild_index'i çağırırsanız her zaman verir.

+0

Hata nedeni, ElasticSearch için Haystack arka ucunun dizini sildikten sonra dizini yenilemeye çalıştığıdır. Https://github.com/toastdriven/django-haystack/pull/647 adresine bakın. – hekevintran

1

İyi bir dizin oluşturmak için curl ve yeniden dizin kullanımı yerine ./manage.py update_index Sadece günü kurtarmak için. Beni