7
votes

Django Haystack avec Elasticsearch, numéro d'indexation

IM en utilisant Django-Haystack avec Elasticsearch, mais il y a un problème d'indexation. Lors de la reconstruction de mon index


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


2 commentaires

On dirait que votre instance Elasticsearch est indisponible. Quel est le résultat de "Curl -Xget 'localhost: 9200'"? Vous devriez voir la sortie JSON avec l'état et la version du serveur.


Est-ce résolu ou non


3 Réponses :


15
votes

Cela ne signifie pas nécessairement que votre serveur ES est en panne, surtout si vous obtenez quelque chose de raisonnable renvoyé avec curl -i "127.0.0.1:9200" . Plus probablement, c'est une question de votre demande, il suffit de ne pas avoir suffisamment de temps que la rapidité des connexions impliquées.

Fait intéressant, le délai d'attente par défaut dans Pyélasticsearch est de 60 secondes, voir def __init __ (auto, URL, délai d'attente = 60, max_retries = 0, revival_delay = 300): dans https://github.com/rhec/pyelasticsearch/blob/master/pyelasticsearch/client.py . Cependant, Haystack écrase que, avec son paramètre par défaut, 10 secondes, conformément à self.timeout = connexion_option.get ('timeout', 10) dans https://github.com/toastdriven/django-haystack/blob/master/haystack/Backends/__init__. py .

Comme vous pouvez le constater, HAYSTACK vous permet de modifier facilement votre paramètre, en ajoutant 'Timeout': 60, à la configuration de votre moteur.

et résolu :)


0 commentaires

-2
votes

Equez-vous

bin/elasticsearch -f 


0 commentaires

1
votes

J'ai aussi eu le problème similaire

Service sudo Elasticsearch redémarrez

alors cela a fonctionné


1 commentaires

Cela a résolu mon problème après que mon serveur soit à court d'espace disque.