/ / IndexMissingException - इलास्टिक्स खोज के साथ django haystack - django, elasticsearch, django-haystack

IndexMissingException - elasticsearch के साथ django haystack - django, elasticsearch, django-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 और gubub से pyelasticsearch HEAD

config:

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

क्या कोई मेरी मदद कर सकता है?

उत्तर:

उत्तर № 1 के लिए 6

मूर्ख में। मैंने अपनी अनुक्रमणिका कक्षा का विस्तार नहीं किया indexes.Indexable हिस्टैक 2 द्वारा आवश्यक के रूप में। इसलिए हैस्टैक ने केवल मेरे सूचकांक को पिकअप नहीं किया और आगे की सूचना के बिना सही ढंग से समाप्त हो गया। त्रुटि संदेश कुछ भ्रामक है। यदि आप सूचकांक पहले से ही मौजूद हैं या नहीं, तो कोई फर्क नहीं पड़ता, अगर आप पुनर्निर्माण करते हैं तो हयस्टैक हमेशा इसे देता है।


उत्तर № 2 के लिए 1

अच्छी तरह से कर्ल के माध्यम से इंडेक्स बनाएं और इंडेक्स के उपयोग के बजाय ।/manage.py update_index का पुनर्निर्माण करें बस दिन बचाने के लिए।