Wie funktionieren Solr-Autowarming und die verschiedenen Cache-Mechanismen?

Wie funktionieren Solr-Autowarming und die verschiedenen Cache-Mechanismen?

Ich habe über die Caches und das Aufwärmen gelesen und habe eine Menge Fragen.

Google hat mich hierher geführt:https://solr.apache.org/guide/7_3/query-settings-in-solrconfig.html

Die neuste Version scheint jedoch hier zu sein:https://solr.apache.org/guide/solr/latest/configuration-guide/caches-warming.html

Nach dem Lesen dieser Dokumentation habe ich eine Reihe von Fragen, die ich hier auflisten werde. Die Hauptfrage betrifft jedoch das automatische Aufwärmen.

1/ Ich sehe eine Erwähnung eines „Index Searcher“, der Instanzen mit einer bestimmten Lebensdauer haben kann und diese Instanzen dann über Caches verfügen.

Soll ich das so verstehen, dass der Prozess des Erstellens neuer und Ungültigmachens alter Instanzen bedeutet, dass sich die „Instanzen“ auf die Tatsache beziehen, dass möglicherweise noch alte Instanzen vorhanden sind, die alte Daten bereitstellen, während die neue Instanz erstellt wird? Und nicht, dass es mehrere Indexsucher gleichzeitig für einen Kern gibt?

2/ Wie funktioniert das alles im Hinblick auf die Ungültigkeitserklärung des Caches? Ist der Cache im Grunde der Sucher und wenn ein Cache ungültig wird, muss der Sucher zusammen mit allen anderen Caches neu erstellt werden?

3/ Ich habe gelesen, dass Autowarming im Grunde eine Reihe von Einträgen aus einer alten Index Searcher-Instanz nimmt und sie der neuen Instanz hinzufügt. Gibt es irgendeine Art von Versicherung, dass diese kopierten Einträge noch gültig sind? Das heißt: Wenn ein Cache aufgrund eines Commits, das Änderungen für bestimmte Dokumente oder Abfrageergebnisse enthalten könnte, nicht mehr gültig ist … gibt es dann einen Mechanismus, der sicherstellt, dass wir das Kopieren alter Einträge vermeiden, die Dokumente/Ergebnisse auf der Grundlage veralteten Materials enthalten?

4/ Ich sehe Beispiele für Caches mit Zahlen wie 512 Einträgen. Das scheint wenig zu sein. Was ist hier zu beachten? Werden Caches sehr häufig neu erstellt, weil neue Indexsucher erstellt werden müssen, und ist es daher Verschwendung, ständig große Objekte zu erstellen, nur damit sie häufig aufgegeben und dann neu erstellt werden? Oder etwas anderes?

5/ Angenommen, Sie haben eine Anwendung, die Dokumente erstellt und Abfragen auf der Grundlage von anwendungsgenerierten Benutzer-IDs durchführt. Und ich habe 1 Kern/Sammlung „user_documents“ und alles geht dort hinein, wobei die „Benutzer-ID“ ein Feld ist. In diesem Szenario scheint es, als ob die Aktion eines Benutzers den Cache für alle Benutzer ungültig machen könnte. Wie kann man das vermeiden?

6/ In Bezug auf Filtercaches lese ich, dass der älteste Eintrag eines LRU-Caches durch neue Einträge ersetzt wird. Da Filtercaches Einträge für jedes „fq“ einer Abfrage speichern, kann es passieren, dass eine lange Abfrage aus dem Cache geschoben wird, aber nur einige ihrer fqs und andere nicht? Ist das eine schlechte Sache?

7/ Für den Dokumentcache sehe ich die Zeile:

Die Größe des documentCache sollte immer größer sein als max_results

mal die max_concurrent_queries, um sicherzustellen, dass Solr während einer Anfrage ein Dokument nicht erneut abrufen muss.

Was sind die Auswirkungen davon? Ich kann keine Dokumentation zu max_results und max_concurrent_queries als Namen für Einstellungen finden.

Vielen Dank an alle, die ihre Zeit hierfür aufwenden.

verwandte Informationen