Ich habe einige Probleme bekommen SolrClient sofort Änderungen, die ich mache zu reflektieren. Wenn ich in den Index schreibe, muss ich zuerst den laufenden Solr-Prozess neu starten, und erst dann kann ich die Änderungen sehen, die ich schreibe. Hier ist der Code ich verwendeSolrClient nicht commit Änderungen bis Neustart von solr Prozess
import json
from SolrClient import SolrClient
def read_all():
client = SolrClient('http://localhost:8983/solr')
res = client.query('test', {
'q' : '*:*'
})
res = json.loads(res.get_json())
docs = res['response']['docs']
for doc in docs:
print (doc)
def index_json():
client = SolrClient('http://localhost:8983/solr')
docs = [
{'id' : '8', 'field8' : 'value8'},
]
client.index_json('test', json.dumps(docs))
client.commit('test')
also so tun, ich habe Felder 1-7 bereits indiziert und dann laufe ich meine READ_ALL Funktion. Ich werde die Dokumente 1-7 ausgedruckt sehen. Dann laufe ich index_json, um Dokument 8 zu indexieren. Wenn ich sofort read_all laufen lasse, sehe ich nur 1-7 ausgedruckt. Ich muss solr stoppen und dann solr starten. Nur dann sehe ich die Dokumente 1-8 ausgedruckt.
las ich auf einer ähnlich klingende Post, die ich brauchte, um meine Änderungen zu übernehmen, weshalb ich ist
hinzugefügtclient.commit('test')
am Boden, aber es scheint nicht zu funktionieren. Hilfe bitte?
Kann die Commit-Anforderung im Solr-Protokoll angezeigt werden? Versuchen Sie außerdem, dem Commit-Aufruf "openSearcher = True" hinzuzufügen, damit Ihr Client warten kann, bis die festgeschriebenen Daten tatsächlich durchsucht werden können. – MatsLindh