是什么导致 'SolrException: Schema Parsing Failed: unknown field' 错误?

What is causing the 'SolrException: Schema Parsing Failed: unknown field' error?

我正在尝试配置 SOLR 4.7.1 单实例、单核设置,但在启动时 SOLR 抛出错误:

Schema Parsing Failed: unknown field 'INVENTORY_ITEM_ID'. 
Schema file is /var/solr/cores/intota-inventory/schema.xml

我相信 SOLR 抱怨 <uniqueKey> 没有在 schema.xml 中定义。我这样说是因为错误消息中显示了我用于 <uniqueKey> 的任何字段名称。但是,<uniqueKey> 似乎已正确定义。这是来自我的 schema.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<schema name="intota-inventory" version="1.5">
<field name="INVENTORY_ITEM_ID" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="LIBRARY_ID" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="TITLE" type="text_title" indexed="true" stored="true" multiValued="false"/>
<field name="KB_AUTHORS" type="text_simple" indexed="true" stored="true" omitNorms="false"/>
<field name="KB_STANDARD_IDENTIFIER" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="KB_STANDARD_IDENTIFIER_TYPE" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="CALL_NUMBER" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="INVENTORY_ITEM_TYPE_DESCRIPTION" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="INVENTORY_ITEM_STATUS_TYPE_DESCRIPTION" type="string" indexed="true" stored="true" multiValued="false"/>

<uniqueKey>INVENTORY_ITEM_ID</uniqueKey>

我用 Google 搜索并调整了 schema.xml 一天,但无法解决这个看似简单的错误。有人知道如何解决这个问题吗?

谢谢

在 Solr 4.8 之前,字段必须包含在 fields 标签中,类型必须包含在 types 标签中。你的例子没有这些。

如果您必须使用 Solr 4.7,请查看该特定发行版附带的示例,您将看到正确的定义范围。

事实上,您的字段定义只是被忽略了。但是如果你升级,它们应该可以工作。