我已经接管了一个废弃的项目,该项目应该使用Solr进行搜索和索引,但Solr并没有正常工作。似乎有3个核心,其中没有一个有conf
目录或schema.xml
文件,因此我编写了下面的模式并将其粘贴到3个核心上。 conf
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="mwplus_schema" version="1.6">
<field name="_version_" type="long" indexed="true" stored="false" />
<field name="pid" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="text" type="text" indexed="true" stored="true" multiValued="true"/>
<uniqueKey>pid</uniqueKey>
<defaultSearchField>text</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>
</schema>
如您所见,_version_
字段存在,但是当我执行bin/solr start -f -p <port>
时,由于此错误,无法创建使用此架构的3个核心:
Error creating core [xmeld_shard1_replica1]: Unable to use updateLog: _version_ field must exist in schema, using indexed="true" or docValues="true", stored="true" and multiValued="false" (_version_ does not exist)
对不起,我无法发布更多细节,我对Solr或项目本身并不太熟悉。关于为什么会发生这种情况以及如何解决问题的任何建议或想法?
编辑:我根据SO中另一个问题的答案更改了schema.xml
,但问题依然存在。以上是更新版本。
答案 0 :(得分:2)
您应该针对stored="true"
字段类型在模式中设置_version_
,它肯定会启动
e.g。
<field name="_version_" type="long" indexed="true" stored="true" />
答案 1 :(得分:0)
您可能正在使用云模式(尽管命令行似乎没有指向那种方式)。如果这样做,您的架构将存储在Zookeeper中,而将一个架构放在文件系统上则无效。
访问管理界面并浏览各种概述页面,注意路径和工作目录信息。他们可能指向与您期望的不同的地方。即使它不处于云模式,您也可能正在使用共享配置(configset),这将在概述信息中反映出来,并且可能在core.properties文件中。
如果您处于云模式,请阅读参考指南中的相关指南,以获取有关如何更新架构的详细信息。虽然我不会修改任何东西,直到你确切知道你拥有的东西并支持它们。