首页 > 解决方案 > Solr 缺少必需的 uniqueKey 字段:id 或未知字段

问题描述

我正在使用 solr 8.1.1

创建核心/集合。然后在更新架构和 solrconfig 之后,我收到了这些错误。在向 schema.xml 添加 id 字段之前

在此处输入图像描述

在 schema.xml 上添加 id 字段后 在此处输入图像描述

这是我的 schema.xml 和 solrconfig.xml,我在做什么错?

架构.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<schema name="dict" version="1.6">
<field name="title" type="string" stored="true" indexed="true" required="true" multiValued="false"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="id" type="string"/>
<copyField source="title" dest="id"  />
<uniqueKey>title</uniqueKey>
<fieldType name="string" class="solr.StrField"/>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
</schema>

解决方案:

<?xml version="1.0" encoding="UTF-8"?>

<config>
  <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>  

  <updateHandler class="solr.DirectUpdateHandler2">

    <updateLog>
          <str name="dir">${solr.ulog.dir:}</str>
              </updateLog>

     <autoCommit> 
            <maxTime>${solr.autoCommit.maxTime:15000}</maxTime> 
                   <openSearcher>false</openSearcher> 
                        </autoCommit>

     <autoSoftCommit> 
            <maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime> 
                 </autoSoftCommit>
                   </updateHandler>

  <requestHandler name="/select" class="solr.SearchHandler"></requestHandler>

  <requestHandler name="/admin/ping" class="solr.PingRequestHandler">

  <lst name="invariants">
  <str name="qt">/select</str><!-- handler to delegate to -->
  <str name="q">title:*</str>
  </lst>
  <str name="healthcheckFile">server-enabled.txt</str>
  </requestHandler>

  <requestHandler name="/update" class="solr.UpdateRequestHandler" />

  <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />

  <requestHandler name="/get" class="solr.RealTimeGetHandler">
        <lst name="defaults">
                <str name="omitHeader">true</str>
                     </lst>
                           </config>

标签: solrsolrcloud

解决方案


阅读 solr 文档后 https://lucene.apache.org/solr/guide/6_6/schema-factory-definition-in-solrconfig.html添加在 solrconfig.xml 上,重新加载,它可以工作了,谢谢

<schemaFactory class="ClassicIndexSchemaFactory"/>

推荐阅读