solr 6.0 没有schema.xml未自动创建schema文件
摘要:在之前的Solr版本中(Solr5之前),在创建core的时候,Solr会自动创建好schema.xml,但是在之后的版本中,新加入了动态更新schema功能,这个默认的schema.xml确找不到了,那么managed-schema与schema.xml是什么样的关系,一起来探究一番。
寻找缺失的schema.xml
在Solr的配置文件里,有两个文件很重要,一个是
solrconfig.xml,还有一个就是schema.xml。
Solr6创建完core以后,默认已经生成了solrconfig.xml,但是却找不到schema.xml。在管理页面,可以看到,虽然Schema可以点击,但是内容是空的,只可以添加Filed。
原来,在Solr5以后,这个schema文件已经不是默认生成好的了,它被取了一个名字
managed-schema,并且没有后缀。乍一看,以为是打不开的文件,当然没有什么能难倒程序员的,用Notepad++打开,发现了熟悉的文字,这不就是之前的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就可以了,位置就是当前文件夹。
动态更新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文件。
打开这个managed-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 6.0 没有schema.xml未自动创建schema文件的更多相关文章
- class_create(),device_create自动创建设备文件结点
class_create(),device_create自动创建设备文件结点 从linux 内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代.相比devfs,udev有很多优 ...
- 工程管理之makefile与自动创建makefile文件过程
(风雪之隅 http://www.laruence.com/2009/11/18/1154.html) Linux Makefile自动编译和链接使用的环境 想知道到Linux Makefile系统的 ...
- class_create(),device_create自动创建设备文件结点【转】
本文参考来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhenwenxian/archive/2010/03/28/5424434.aspx 本文转自:http://ww ...
- linux下自动创建设备文件节点---class
在驱动模块初始化函数中实现设备节点的自动创建 我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的 ...
- IDEA创建applicationContext.xml 无法自动提示,文件图标是文本类型
问题:创建applicationContext.xml 的时候注册到file里边去了. 解决方法: 打开设置界面找到以下界面: 删除掉 Text 里边的 applicationContext.xml ...
- linux设备驱动----利用mdev(udev)自动创建设备文件节点
1.mdev的使用方法和原理: mdev是busybox 自带的一个简化版的udev,适合于嵌入式的应用埸合.其具有使用简单的特点.它的作用,就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程 ...
- Solr4.0 如何配置使用UUID自动生成id值
原文链接http://blog.csdn.net/keepthinking_/article/details/8501058#comments 最近学习了Lucene,随便也学习了Solr,Solr规 ...
- Solr5之Schema.xml详解
schema.xml 是用来定义索引数据中的域的,包括域名称,域类型,域是否索引,是否分词,是否存储,是否标准化即 Norms ,是否存储项向量等等. schema.xml 配置文件的根元素就是 sc ...
- solr5.5教程-solrconfig.xml,加载schema.xml
布署完成后,接下来要更深入的研究solr的原理和使用. 首先进入testcore这个文件夹下面,发现这个core的conf里并没有schema.xml.那么数据格式是在哪里定义的呢? 打开 solr_ ...
随机推荐
- payload和formData有什么不同?
最近做项目的时候,在通过post请求向服务端发送数据的时候,请求失败了.错误信息如下: 返回的400(bad request)错误,说明客户端这边发送的请求是有问题的. 和通过jquery中的ajax ...
- android 多进程 Binder AIDL Service
本文參考http://blog.csdn.net/saintswordsman/article/details/5130947 android的多进程是通过Binder来实现的,一个类,继承了Bind ...
- win7下装ubuntu双系统后无法进入win7的解决方法
本来电脑的系统是win7,然后用u盘装了ubuntu之后可能会出现开机没有引导界面而直接进入ubuntu系统的情况. 原因:没有设置gurb引导 解决方法:需要更新gurb来使ubuntu识别出win ...
- LoadRunner 比较字符串是否相等
int strcmp ( const char *string1, const char *string2 );大小写敏感.int stricmp ( const char *string1, con ...
- HDU 2896 病毒侵袭 (AC自己主动机)
pid=2896">http://acm.hdu.edu.cn/showproblem.php?pid=2896 病毒侵袭 Time Limit: 2000/1000 MS (Java ...
- Socketclient与服务端
package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamR ...
- Android5.0(lollipop)新特性介绍(一)
今年6月的Google I/O大会上.Android L的初次见面我相信让会让非常多android粉丝有些小激动和小期待.当然作为开发人员的我来说,激动不言而喻,毕竟这是自08年以来改变最大的一个版本 ...
- UVA 1400 1400 - "Ray, Pass me the dishes!"(线段树)
UVA 1400 - "Ray, Pass me the dishes!" option=com_onlinejudge&Itemid=8&page=show_pr ...
- sizeof、strlen
一.sizeof sizeof(...)是运算符,sizeof操作符的结果类型是size_t.它在头文件里typedef为unsigned int类型.是以字节为单位进行计数的.所以位域成员不 能用s ...
- Java小白手记2:一些名词解释
看到<Java 征途:行者的地图> ,这是一篇有关java学习路径文章.对我等Java小白有指引作用.里面提到了一些基本的名词术语,有些我知道,有些不知道,再补上一些自己曾觉得模糊的,记录 ...