Elasticsearch -Updates sind nicht unmittelbar.Python

Python-Programme
Anonymous
 Elasticsearch -Updates sind nicht unmittelbar.

Post by Anonymous »

Ich versuche, die Leistung in einer Suite zu verbessern, die gegen Elasticsearch testet. < /p>

Die Tests dauern lange, da Elasticsearch seine Indizes nicht sofort nach der Aktualisierung aktualisiert. Zum Beispiel wird der folgende Code ausgeführt, ohne einen Behauptungsfehler zu erhöhen. < /P>

Code: Select all

from elasticsearch import Elasticsearch
elasticsearch = Elasticsearch('es.test')

# Asumming that this is a clean and empty elasticsearch instance
elasticsearch.update(
index='blog',
doc_type=,'blog'
id=1,
body={
....
}
)

results = elasticsearch.search()
assert not results
# results are not populated
Derzeit ist die Lösung für dieses Problem miteinander gehackt. p>

from time import sleep
from elasticsearch import Elasticsearch
elasticsearch = Elasticsearch('es.test')

# Asumming that this is a clean and empty elasticsearch instance
elasticsearch.update(
index='blog',
doc_type=,'blog'
id=1,
body={
....
}
)

# Don't want to use sleep functions
sleep(1)

results = elasticsearch.search()
assert len(results) == 1
# results are now populated
< /code>

Offensichtlich ist dies nicht großartig, da es eher fehleranfällig ist. Wenn Elasticsearch länger als eine Sekunde dauert, um seine Indizes zu aktualisieren scheitern. Außerdem ist es extrem langsam, wenn Sie 100er von Tests wie diesen durchführen. < /P>

Mein Versuch, das Problem zu lösen Aufgaben, die erledigt werden müssen. Dies funktioniert jedoch nicht, und dieser Code wird ohne Behauptungsfehler ausgeführt. < /P>

from elasticsearch import Elasticsearch
elasticsearch = Elasticsearch('es.test')

# Asumming that this is a clean and empty elasticsearch instance
elasticsearch.update(
index='blog',
doc_type=,'blog'
id=1,
body={
....
}
)

# Query if there are any pending tasks
while elasticsearch.cluster.pending_tasks()['tasks']:
pass

results = elasticsearch.search()
assert not results
# results are not populated
< /code>

Im Grunde genommen sind Elasticsearch -Updates nicht
unmittelbar, wie warten Sie darauf, dass Elasticsearch die Aktualisierung des Index beendet hat? < /P.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post