Entfernen Sie den AddSchemaFieldsUpdateProcessorFactory
Abschnitt aus der updateRequestProcessorChain
config in Ihrem solrconfig.xml
Die schemaFactory Option in solrconfig.xml. Dies steuert, ob das Schema als "verwaltetes Indexschema" definiert werden soll: Schemaänderungen sind nur über die Schema-API möglich. standardmäßig, wenn kein schemaFactory angegeben ist, dann ist das Standardverhalten der "ClassicIndexSchemaFactory"
Die ClassicIndexSchemaFactory erfordert die Verwendung einer schema.xml-Datei zu verwenden, , die manuell bearbeitet werden können und nur nur dann geladen wird, wenn die Sammlung geladen. Diese Einstellung verhindert, dass Schema-API-Methoden das Schema ändern.
Wenn stattdessen ManagedIndexSchemaFactory angegeben wird, lädt Solr das Schema von der Ressource, die in managedSchemaResourceName
benannt ist, anstatt von aus schema.xml.
AddSchemaFieldsUpdateProcessorFactory: Dieser Prozessor fügt dem Schema dynamisch Felder hinzu, wenn ein Eingabedokument einen oder mehrere Felder enthält, die keinem Feld oder dynamischem Feld im Schema entsprechen.
mehr auf dem gleichen lesen Sie hier https://lucene.apache.org/solr/4_6_0/solr-core/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.html
Kurz gesagt, die oben Prozess Fabrik für verwaltete Schema verwendet wird. Wenn man ManagedIndexSchemaFactory nicht verwenden möchte, sollte es aus dem updateRequestProcessorChain entfernt werden.
Weitere Details davon können Sie den solr Code überprüfen oder den Quellcode der AddSchemaFieldsUpdateProcessorFactory.java
Debug lesen die Methode processAdd(AddUpdateCommand cm)
, wird mehr auf dem gleichen helfen.
Danke, große Antwort, arbeitete für mich großartig. Können Sie erläutern, warum dies getan werden muss? –
Arbeitete auch für mich. Warum wird das nicht als Antwort ausgewählt? –
Ich weiß wirklich nicht, warum er das noch nicht als Antwort akzeptiert hat: (... Obwohl es vielen geholfen hat. –