xml – 创建核心的Solr错误:在架构中找不到fieldType [x]
我试图使用我自己的schema.xml运行Solr核心,但Solr(版本5.2.1)一直抱怨缺少我的字段定义中甚至不存在的fieldType元素.
org.apache.solr.common.SolrException: fieldType 'booleans' not found in the schema 每当我添加一个’missing’字段类型时,会弹出另一个错误,抱怨另一个fieldType缺失,比如longs等,直到我将它们全部添加并且接受模式而没有错误. 现在为什么我必须提供这些fieldtype元素,当它们没用时? 在config.xml中我有: <schemaFactory class="ClassicIndexSchemaFactory"/> 这是我的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> 那里没有一个multiValued字段.尽管如此,我尝试单独为每个字段明确设置multiValued =’false’,但无济于事.即使我将整个架构剥离到少数String字段,它仍然会生成该错误. 我非常有信心我的schema.xml没问题,但也许某些设置应该告诉Solr放轻松. <lst name="typeMapping"> <str name="valueClass">java.lang.Boolean</str> <str name="fieldType">booleans</str> </lst> 在这里你需要将“布尔”改为“布尔”. <lst name="typeMapping"> <str name="valueClass">java.lang.Boolean</str> <str name="fieldType">boolean</str> </lst> 然后它会工作.. 请检查链接 https://lucene.apache.org/solr/4_6_0/solr-core/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactory.html http://events.linuxfoundation.org/sites/events/files/slides/whats-new-in-apache-solr.pdf (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |