django haystack github
IndexMissingException-django haystack con elasticsearch (2)
Bien, cree un índice a través de curl y en lugar de volver a generar el índice use ./manage.py update_index Solo para guardar el día.
Estoy tratando de configurar la búsqueda de pajar con elasticsearch backend. Recibo el siguiente error:
./manage.py rebuild_index
...
Failed to clear Elasticsearch index: (404, u''IndexMissingException[[haystack] missing]'')
Sin embargo, el siguiente comando funciona:
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}
Ahora, después de correr
./manage.py rebuild_index
...
Failed to clear Elasticsearch index: (404, u''IndexMissingException[[haystack] missing]'')
De nuevo, de repente, el comando que funcionaba como se esperaba ahora genera el siguiente error:
curl -XGET http://33.33.33.1:9200/haystack/test/something
{"error":"IndexMissingException[[haystack] missing]","status":404}
Como sugerí en otros lugares, también intenté:
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)
con el mismo resultado:
{"error":"IndexMissingException[[haystack] missing]","status":404}
Estoy ejecutando Django 1.4.2, django-haystack HEAD de github y pyelasticsearch HEAD de github
config:
HAYSTACK_CONNECTIONS = {
''default'': {
''ENGINE'': ''haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine'',
''URL'': ''http://33.33.33.1:9200/'',
''INDEX_NAME'': ''haystack'',
},
}
¿Alguien puede ayudarme?
Estúpido yo. No extendí mi clase Index desde indexes. Indexable según requiera el haystack 2. Por lo tanto, haystack simplemente no recogió mi índice y finalizó correctamente sin previo aviso. El mensaje de error es algo engañoso. Haystack parece dar siempre si invocas rebuild_index, sin importar si el índice ya existió o no.