手机版
你好,游客 登录 注册
背景:
阅读新闻

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

[日期:2016-10-17] 来源:Linux社区  作者:jiangchao858 [字体: ]

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

寻找缺失的schema.xml

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

  2. 在管理页面,可以看到,虽然Schema可以点击,但是内容是空的,只可以添加Filed。
    Schema

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

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就可以了,位置就是当前文件夹。
    file

动态更新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文件。
schema.xml
打开这个managed-schema文件,会发现这个文件不允许修改的。
Do Not EDIT

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

linux
相关资讯       Solr 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款