突然有一天,solr重启后,发现之前建立的一个core不见了,新建的时候也报错_version_ field must exist in schema,具体如下:
XError CREATEing SolrCorelogin XX_log': Unable to createcore [XX_log] Caused by:version field must exist inschema, using indexed="true'or docvalues="true"stored="true" andmultivalued="false"( version is multivalued
PS:(说明XX_log是脱敏后的Core)
打开solr管理端页面,也可以看到明显的报错,提示solrcore初始化失败,如下图

解决办法:
(1)看报错,已经很明确的提示,需要修改schema配置文件
于是,在报错的XX_log下查找相关配置文件
find -name "schema.xml"
find -name "solrconfig.xml"
发现查无此文件schema.xml,再次查看版本,本机版本是5.5,而solr在版本5以后,不再默认生成schema.xml,而使用了managed-schema这个文件名,可以在另外一个安装时候自动生成的配置文件solrconfig.xml中看到他的身影:
<schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>
2)修改配置文件managed-schema,按报错提示添加配置
在managed-schema文件中,查找是否存在[name=“version”] 字样的
本机查看到的情况
<field name="_version_" type="tlongs" />
修改内容:按如下内容:若是存在进行修改,若不存在则增加
<field name="_version_" type="tlongs" indexed="true" stored="true" multiValued="false"/>
(3) 修改配置后,需要重启solr
-- 进入solr的bin命令(按实际部署目录执行)
cd solr/bin
-- 重启solr
./solr stop
./solr start

后话:
若是已经进行习惯使用schema.xml文件名的,也可以根据上面的配置,生成schema.xml文件,并修改配置文件solrconfig.xml里面的配置项:managedSchemaResourceName
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




