2017-03-16 1 views
0

Ich bin neu in Solr und ich versuche, sein Verhalten während eines Re-Index zu verstehen. Ich habe einen Stapelprozess ausgeführt, der Daten aus einer relationalen Tabelle auswählt und sie einem Solr-Index hinzufügt.Solr Re-Index-Verhalten

Von dem, was ich über Solr verstehen zu lesen, gibt es zwei Fälle, wenn Sie

Fall 1 einen Re-Index tun müssen, um: Wenn neue Zeilen in der Tabelle eingefügt werden (Quelldaten) Fall 2: Wenn ein der Spaltenart ändert sich und Sie müssen das Schema entsprechend ändern.

Sind die alten Daten in Fall 1 verfügbar, nach denen Benutzer suchen können, während der Re-Index stattfindet?

Was passiert während einer Schemaänderung, da die alten Daten nicht mehr mit dem neuen Schema übereinstimmen? Welche Art von Verhalten werden Benutzer bei der Suche erfahren?

Ich konnte keine klaren Antworten auf diese Fragen online finden. Jede Klärung wird geschätzt.

Antwort

0

Fall 1. Solr markiert das Dokument als gelöscht, aber es bleibt im Index, fügt ein neues Dokument mit der gleichen Dokument-ID hinzu. Also, ja, die Daten sind verfügbar, bis das neue Dokument festgeschrieben ist.

Fall 2. Wenn Sie das Schema aktualisieren, sind die Dokumente aus den alten Daten weiterhin verfügbar, aber alle gelöschten Felder sind nicht sichtbar und alle neuen Felder fehlen. Wenn Sie darüber nachdenken, handelt es sich bei einem indizierten Feld nur um eine Reihe von Token, sodass diese Felder weiterhin durchsucht werden können, die Inkonsistenz jedoch bei der neuen Abfrageanalyse besteht und die Token im Index zu überraschenden Ergebnissen führen . Grundsätzlich könnten Ihre Ergebnisse inkonsistent sein.

ein Beispiel zu geben: Angenommen, Sie auf ein Wort ein Laut Filter tun: Fox und erzeugt die Token: Fux | foks in Ihrem Index.

Dann entfernen Sie den phonetischen Filter und geben Sie Fuchs - es wird keine Übereinstimmungen mit dem, was in Ihrem Index ist.

Sagen Sie bitte ein anderes Feld mit einem Porter Stemmer haben: Index

Sie die PorterStemmer entfernen: Index noch übereinstimmen, indiziert wird nicht der Begriff an wird indiziert stammten.

+0

für Fall 2, wenn dieses bestimmte Feld aufgrund einer Schemaänderung geändert wurde und dieses Feld für die Anzeige in den Suchergebnissen eingerichtet wird ... geben die Ergebnisse für dieses Feld null zurück oder geben das Feld überhaupt nicht zurück. – vish

+0

Es hängt von den Feldtypen ab. Wenn Sie den fundamentalen Typ von einer Zeichenfolge in eine Ganzzahl ändern, erhalten Sie einen FEHLER: SCHEMA-INDEX-MISMATCH. Der Wechsel von einer analysierten Zeichenkette in eine andere Richtung wird den Zeichenkettenwert immer noch zurückholen, da der Basistyp derselbe ist. –

+0

danke! macht Sinn. – vish