0

J'utilise le paquet elasticsearch-dsl en Python pour mon projet. J'ai une requête de recherche très simple comme on peut le voir ci-dessous:La recherche elasticsearch-dsl ne fonctionne qu'en mode débogage

s = Search(using=connections.get_connection(), index= 'registry', doc_type=['storage_doc']).params(request_timeout=60)   
    s.filter("match", postcode="SW1").query("match", forename="Brendan")     
    response = s.execute(ignore_cache=True)   
    print(response.success()) 
    print(response.took) 
    print(response.to_dict()) 
    print('Total %d hits found.' % response.hits.total) 

qui fonctionne très bien si je l'exécute en mode débogage, mais quand je lance le code de la console que je reçois toujours 0 hits. Je ne sais pas pourquoi cela se passe et j'ai déjà passé une demi-journée à essayer de trouver une solution. Des idées?

+0

Que voulez-vous dire par "mode de débogage"? – MrName

+0

J'utilise le code VS et le débogage. Si je suis en mode débogage, cela fonctionne. Si je cours python alors ce n'est pas le cas. Vraiment étrange – Dimitris

+0

Je ne connais pas vraiment grand-chose de cet IDE, mais est-il possible que votre définition de connexion soit en quelque sorte définie dans votre IDE? Cela pourrait valoir la peine de passer à travers cela sur la console avec 'pdb'. – MrName

Répondre

0

Le problème était que la recherche avait lieu immédiatement après l'indexation de ces données de test. Potentiellement Elasticsearch n'a pas eu assez de temps pour indexer les données et les chercher et, par conséquent, je recevais zéro hits. Si l'indexation a lieu à un moment différent de la recherche, tout fonctionne comme prévu. Ce comportement est le résultat des premiers tests que nous exécutons actuellement.