Ich versuche einen Solr-Core mit meiner eigenen schema.xml
laufen zu lassen, aber Solr (Version 5.2.1) beschwert sich über fehlende fieldType
Elemente, die nicht gerade sind in meinen fields
Definitionen.Solr error creating core: fieldType [x] nicht im Schema gefunden
org.apache.solr.common.SolrException: fieldType 'booleans' not found in the schema
Immer, wenn ich eine ‚fehlenden‘ hinzufügen fieldtype
ein weiterer Fehler über eine andere fieldType
beschweren erscheint fehlt, wie longs
, usw., bis ich sie alle und das Schema ohne Fehler akzeptiert wird hinzugefügt haben. Wie kann ich diese fieldtype
Elemente bereitstellen, wenn sie nicht verwendet werden?
In config.xml
ich habe:
<schemaFactory class="ClassicIndexSchemaFactory"/>
Hier ist meine schema.xml
:
<schema name="collections" version="1.5">
<fields>
<field name="id_object" type="string" indexed="true" stored="true" />
<field name="id_organization" type="string" indexed="true" stored="true" />
<field name="title" type="string" indexed="true" stored="true" />
<field name="artist" type="string" indexed="true" stored="true" />
<field name="searchname" type="string" indexed="true" stored="true" />
<field name="technique_group" type="string" indexed="true" stored="true" />
<field name="technique" type="string" indexed="true" stored="true" />
<field name="color_type" type="string" indexed="true" stored="true" />
<field name="color" type="string" indexed="true" stored="true" />
<field name="subject" type="string" indexed="true" stored="true" />
<field name="height" type="tint" indexed="true" stored="true" />
<field name="width" type="tint" indexed="true" stored="true" />
<field name="depth" type="tint" indexed="true" stored="true" />
<field name="price_sale" type="tfloat" indexed="true" stored="true" />
<field name="price_rental" type="tfloat" indexed="true" stored="true" />
<field name="price_rental_with_savings" type="tfloat" indexed="true" stored="true" />
<field name="savings_portion" type="tfloat" indexed="true" stored="true" />
<field name="year" type="tint" indexed="true" stored="true" />
<field name="is_for_rent" type="boolean" indexed="true" stored="true" />
<field name="is_for_sale" type="boolean" indexed="true" stored="true" />
<field name="status" type="string" indexed="true" stored="true" />
<field name="shipment" type="tfloat" indexed="true" stored="true" />
<field name="timestamp" type="tdate" indexed="true" stored="true" default="NOW" />
<!-- catch all field, must be multiValued if any of its source fields is -->
<field name="quick_search" type="text" indexed="true" stored="false" />
<!-- mandatory -->
<field name="_version_" type="tlong" indexed="true" stored="true" />
</fields>
<uniqueKey>id_object</uniqueKey>
<copyField source="id_object" dest="quick_search" />
<copyField source="title" dest="quick_search" />
<copyField source="artist" dest="quick_search" />
<copyField source="searchname" dest="quick_search" />
<copyField source="technique_group" dest="quick_search" />
<copyField source="technique" dest="quick_search" />
<copyField source="color_type" dest="quick_search" />
<copyField source="color" dest="quick_search" />
<copyField source="subject" dest="quick_search" />
<types>
<fieldtype name="string" class="solr.StrField" />
<fieldtype name="boolean" class="solr.BoolField" />
<fieldtype name="tint" class="solr.TrieIntField" />
<fieldtype name="tlong" class="solr.TrieLongField" />
<fieldtype name="tfloat" class="solr.TrieFloatField" />
<fieldtype name="tdate" class="solr.TrieDateField" />
<fieldtype name="text" class="solr.TextField"/>
</types>
</schema>
Es in kein einziges multiValued
Feld ist. Nichtsdestoweniger habe ich versucht, multiValued='false'
für jedes Feld einzeln zu setzen, aber ohne Erfolg. Selbst wenn ich das gesamte Schema auf nur eine Handvoll von String
Feldern entkleide, erzeugt es immer noch diesen Fehler.
Ich bin ziemlich zuversichtlich, dass meine schema.xml
OK ist, aber vielleicht sollte irgendwo eine Einstellung Solr sagen, es leicht zu nehmen.
Das sieht nach einer viel eleganteren Lösung aus, als nur das Ganze zu kommentieren. Damit dies funktioniert, musste ich ** ManagedIndexSchemaFactory ** anstelle von ** ClassicIndexSchemaFactory ** verwenden, setze "mutable = true" und verwende einen anderen Namen als "schema.xml" – acdhirr
in "Solr 6.3.0", es funktioniert auch. Benötigte Sektion kann in 'solrconfig.xml' gefunden werden. Übrigens musste ich auch 's' von' tdates', 'tlongs' und' tdoubles' entfernen. Ich habe 'solrconfig.xml' von' basic_configs' genommen. – TitanFighter