Ich bin ein wenig verwirrt darüber, wie sich der Index und die gespeicherten Attribute der Solr-Felder verhalten.
Zum Beispiel, wenn ich Folgendes in der Schema.xml habe
<field name="test1" type="text" indexed="false"
stored="false" required="false" />
Wird das Feld test1 nicht im Solr-Dokument gespeichert, auch wenn ich ein Dokument mit diesem Feld erstelle und einen Wert für dieses Feld festlege und das Dokument an Solr festschreibe. Bedeutet das stored=false
Attribut, dass der Wert des Feldes in Solr verloren geht und nicht beibehalten wird?
Der Hauptpunkt, wenn beide auf false gesetzt sind, besteht darin, dieses bestimmte Feld explizit zu überspringen.
Wenn Sie beispielsweise eine dynamische / Feld-Zuordnung zum Speichern / Indizieren haben und einen bestimmten Namen ignorieren möchten, der sonst unter das Muster von dynamicField fallen würde.
Alternativ können Sie dynamicField verwenden, um eine ganze Reihe von Feldern mit demselben Präfix / Suffix zu ignorieren, das von einem Drittanbieter stammt. Zum Beispiel sendet Tika Ihnen eine ganze Reihe von Metadatenfeldern, die Sie möglicherweise einfach ignorieren möchten. Siehe dies in Solrs Beispiel schema.xml definiert und in solrconfig.xml verwendet
In späteren Versionen von Solr können Sie stattdessen auch IgnoreFieldUpdateProcessorFactory verwenden (siehe vollständige Liste für andere), wodurch diese Felder noch früher im Indizierungsprozess entfernt werden.
quelle
Zitat aus dieser Antwort im Mail-Thread des Solr:
quelle
Wenn beide falsch sind, verlieren Sie Ihre Daten in diesem Feld. Wenn indiziert true, sind die Daten durchsuchbar, können jedoch nicht angezeigt werden. Wenn Sie "gespeichert" auf "true" setzen, können Sie nicht in diesem Feld suchen, es kann jedoch angezeigt werden (in diesem Fall können Sie eine Kopierfeldregel schreiben, um die Informationen aus diesem Feld in das standardmäßig durchsuchbare Feld zu kopieren). Beide als true gesetzt -> können Sie suchen und anzeigen.
quelle
indexed = true bedeutet, dass dieses Feld bei der Suche verwendet werden kann. Wenn ich beispielsweise das Elementfeld wie folgt einstelle und versuche, das Feld in einer Suche auszuführen
fq = item: "Tennis" markiert einen Fehler.
gespeichert = wahr bedeutet, dass dieses Feld in der Liste der Felder abgerufen werden kann, die nach einer Abfrage angezeigt werden. Zum Beispiel, wenn das Elementfeld wie folgt definiert ist
Sie können suchen
fq = item: "Tennis" correctly
, aber das Elementfeld in den Ergebnissen wird nicht zurückgegeben.Grüße
quelle