天天看点

solr7.0没有schema.xml未自动创建schema文件

目录

​​寻找缺失的schema.xml​​

​​动态更新schema.xml​​

​​solr使用schema.xml还是managed-schema​​

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

寻找缺失的schema.xml

  1. 在Solr的配置文件里,有两个文件很重要,一个是​

    ​solrconfig.xml​

    ​,还有一个就是​

    ​schema.xml​

    ​。 
  2. solr7.0没有schema.xml未自动创建schema文件
  3. Solr6创建完core以后,默认已经生成了​

    ​solrconfig.xml​

    ​,但是却找不到​

    ​schema.xml​

    ​。
  4. 在管理页面,可以看到,虽然Schema可以点击,但是内容是空的,只可以添加Filed。 
  5. solr7.0没有schema.xml未自动创建schema文件
  6. 原来,在Solr5以后,这个schema文件已经不是默认生成好的了,它被取了一个名字​

    ​managed-schema​

    ​,并且没有后缀。乍一看,以为是打不开的文件,当然没有什么能难倒程序员的,用Notepad++打开,发现了熟悉的文字,这不就是之前的schema.xml文件吗? 
  7. solr7.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​

    ​就可以了,位置就是当前文件夹。 

动态更新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​

​文件。 

solr7.0没有schema.xml未自动创建schema文件

打开这个​

​managed-schema​

​文件,会发现这个文件不允许修改的。 

solr7.0没有schema.xml未自动创建schema文件

solr使用schema.xml还是managed-schema

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

    ​schema.xml​

继续阅读