阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Solr 6.0 没有schema.xml未自动创建schema文件

117次阅读
没有评论

共计 2337 个字符,预计需要花费 6 分钟才能阅读完成。

摘要:在之前的 Solr 版本中(Solr5 之前),在创建 core 的时候,Solr 会自动创建好 schema.xml,但是在之后的版本中,新加入了动态更新 schema 功能,这个默认的 schema.xml 确找不到了,那么 managed-schema 与 schema.xml 是什么样的关系,一起来探究一番。

寻找缺失的 schema.xml

  1. 在 Solr 的配置文件里,有两个文件很重要,一个是solrconfig.xml,还有一个就是schema.xml
    Solr 6.0 没有 schema.xml 未自动创建 schema 文件
    Solr6 创建完 core 以后,默认已经生成了solrconfig.xml,但是却找不到schema.xml

  2. 在管理页面,可以看到,虽然 Schema 可以点击,但是内容是空的,只可以添加 Filed。
    Solr 6.0 没有 schema.xml 未自动创建 schema 文件

  3. 原来,在 Solr5 以后,这个 schema 文件已经不是默认生成好的了,它被取了一个名字managed-schema,并且没有后缀。乍一看,以为是打不开的文件,当然没有什么能难倒程序员的,用 Notepad++ 打开,发现了熟悉的文字,这不就是之前的 schema.xml 文件吗?
    Solr 6.0 没有 schema.xml 未自动创建 schema 文件

This is the Solr schema file. This file should be named“schema.xml”and
should be in the conf directory under the solr home
(i.e. ./solr/conf/schema.xml by default)
or located where the classloader for the Solr webapp can find it.

  • 文档中还明确说明了,这个文档应该根据实际情况放到合适的位置,并把文件命名为 schema.xml. 这次我们就直接把文件名改成schema.xml 就可以了,位置就是当前文件夹。
    Solr 6.0 没有 schema.xml 未自动创建 schema 文件

动态更新 schema.xml

在之前的版本中,我们是可以在 solr 的管理页面直接查看 schema.xml 文件的,但是不能对其做修改,如果手动更改 schema.xml 文件,需要重启服务器才能生效。在现在的版本中,是可以直接编辑这个文件的,在 Schema 选项下,有 AddField、Add Dynamic Field、Add Copy Field 三个基础功能。

如果你手动将 managed-schema 文件改为 schema.xml,那么在重新启动以后,solr 会将schema.xml 改名为 schema.xml.bak, 并再次生成一个managed-schema 文件。
Solr 6.0 没有 schema.xml 未自动创建 schema 文件
打开这个 managed-schema 文件,会发现这个文件不允许修改的。
Solr 6.0 没有 schema.xml 未自动创建 schema 文件

solr 使用 schema.xml 还是 managed-schema

solr6 使用 <schemaFactory/> 来控制使用 schema 的方式,默认使用的是 ManagedIndexSchemaFactory,但是在solrconfig.xml 文件中,这个配置没有显示的指定出来,其实它相当于

 <schemaFactory class="ManagedIndexSchemaFactory">
   <bool name="mutable">true</bool>
   <str name="managedSchemaResourceName">managed-schema</str>
 </schemaFactory>
  • mutable 是否改变 Schema 数据,设置为 false 可以防止他人更改 Schema
  • managedSchemaResourceName 可以指定 Schema 的名字,当然值不能是schema.xml

如果你已经熟悉了之前的配置方式,可以使用 ClassicIndexSchemaFactory, 只需要在solrconfig.xml 文件中添加这样的配置 <schemaFactory class="ClassicIndexSchemaFactory"/> 即可,当然这就需要你必须配置一个 schema.xml 文件。

如果你在使用 SolrCloud,上述的操作应该是在 ZooKeeper 中完成。

更多 Solr 相关教程见以下内容

Solr3.6.1 在 Tomcat6 下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm

基于 Tomcat 的 Solr3.5 集群部署 http://www.linuxidc.com/Linux/2012-12/75297.htm

在 Linux 上使用 Nginx 为 Solr 集群做负载均衡 http://www.linuxidc.com/Linux/2012-12/75257.htm

Linux 下安装使用 Solr http://www.linuxidc.com/Linux/2012-10/72029.htm

在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm

Solr 实现 Low Level 查询解析(QParser)http://www.linuxidc.com/Linux/2012-05/59755.htm

基于 Solr 3.5 搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm

Solr 3.5 开发应用教程 PDF 高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm

Solr 4.0 部署实例教程 http://www.linuxidc.com/Linux/2013-10/91041.htm

Solr 的详细介绍:请点这里
Solr 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/136111.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2337字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中