【solr】schemaFactory配置相关schema.xml
schemaFactory配置相关schema.xml
关于schemaFactory的配置困扰我半天啦,下面来总结一下。
话说,好像是从5.0以后就已经没有schema.xml啦,这是由于Solr5以后增加了一个新的功能,提供schema API修改分词字段类型,通过schemaFactory来配置选择方式。
可以通过solr下面的conf文件夹中solrConfig.xml可以找到schemaFactory配置,在Solr5之前都是配置ClassicIndexSchemaFactory,
<schemaFactory class="ClassicIndexSchemaFactory"/>
Solr5以后包括Solr6,默认使用的是ManagedIndexSchemaFactory
<schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>
这里我们就好好聊一聊他们的区别。
ClassicIndexSchemaFactory配置后,只能手动编辑schema.xml文件来修改FieldType、Field等等信息,因此这种情况下需要特别的注意在定义模式小心出现漏定义的错误。有人也称这种模式为经典模式。
ManagedIndexSchemaFactory配置被称为manage-schema模式,不支持用户通过修改manage-schema文件去进行FieldType、Field的修改(但实际上是可以manage-schema文件进行修改,并且重启Solr后可以生效)。manage-schema提供一套schema api去创建、修改、删除FieldType、Field等。
- 使用ManagedIndexSchemaFactory后,如果删除conf下面的manage-schema,系统会将conf下面的schema.xml重命名为schema.xml.bak,并重新生成一个manage-schema,此时manage-schema中的内容是schema.xml内容格式化得东东。
- managedSchemaResourceName属性定义了schema.xml文件的路径,这里使用的是相对路径,因此managed-schema文件跟solrconfig.xml文件在同一个目录中。
注意:本人就是没有太理解,一直认为manage-schema模式下,manage-schema中的配置不能修改,就是修改也能不生效的,其实不然,就算你修改了也可以生效,重启后和通过API修改效果一样。不过如果正的使用这种模式的话也没比较修改,通过web页面添加编辑更加方便。
下面介绍一下managed-schema模式下的Schema API
Schema API是一套REST风格的API,用户可以通过浏览器,或者使用某种语言中的HTTPClient对象进行访问。
HTTP Method:POST; Content-type:json,则定义新默认的Java代码为:
public void addField() throws IOException
{
String urlStr="http://192.98.219.12:8983/solr/techproducts/schema";
URL url=new URL(urlStr);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-type", "application/json");
connection.setDoOutput(true);
connection.setDoInput(true);
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
JSONObject field=new JSONObject();
field.put("name", "test");
field.put("type", "text_general");
field.put("stored", true);
JSONObject addDoc=new JSONObject();
addDoc.put("add-field",field);
System.out.println(addDoc.toString());
writer.write(addDoc.toString());
writer.flush();
writer.close();
//
BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
while(reader.ready())
{
System.out.println(reader.readLine());
}
reader.close();
}
【solr】schemaFactory配置相关schema.xml的更多相关文章
- solr 6.0 没有schema.xml未自动创建schema文件
solr 6.0 没有schema.xml未自动创建schema文件 摘要:在之前的Solr版本中(Solr5之前),在创建core的时候,Solr会自动创建好schema.xml,但是在之后的版本中 ...
- Solr入门之(5)配置文件schema.xml
该配置文件中的标签:<fileTypes>.<fields>.<uniqueKey>.<copyField> fieldType说明 标签types中定 ...
- 数据库中间件DBLE学习(二) 学习配置schema.xml
前言 一边有一个经常引诱我让我"娱乐至死"的视频,还有一个不停"鞭策"我让我快点学习的大BOSS.正是有这两种极端的爱才让我常常在自信中明白自己努力的方向.嗯, ...
- 认识配置文件schema.xml(managed-schema)
1.schema文件是在SolrConfig中的架构工厂定义,有两种定义模式: 1.1.默认的托管模式: solr默认使用的就是托管模式.也就是当在solrconfig.xml文件中没有显式声明< ...
- solr搜索引擎配置使用mongodb作为数据源
环境说明: 操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境 mongodb: 4.0.3 solr: 7.5.0 python: 3.5 配置mongodb 1.拉取mo ...
- 我与solr(五)--关于schema.xml中的相关配置的详解
先把文件的代码贴上来: <?xml version="1.0" encoding="UTF-8" ?> <!-- 版权说明... --> ...
- SOLR企业搜索平台 三 (schema.xml配置和solrj的使用)
标签:solrj 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://3961409.blog.51cto.com/3951409/8 ...
- solr的schema.xml配置属性解释
schema.xml做什么? SOLR加载数据,创建索引和数据时,核心数据结构的配置文件是schema.xml,该配置文件主要用于配置数据源,字段类型定义,搜索类型定义等.schema.xml的配置直 ...
- solr schema.xml文档节点配置
首先,讲解一下/usr/local/solr/collection1/conf/schema.xml的配置,此文档功能类似于配置索引数据库. Field:类似于数据库字段的属性(此文统一使用用“字段” ...
随机推荐
- leetcode-买卖股票的最佳时机④*
题目描述: 方法一: class Solution: def maxProfit(self, k: int, prices: List[int]) -> int: if len(prices) ...
- Docker配置JDK1.8
1.安装Docker(菜鸟教程有) https://www.runoob.com/docker/centos-docker-install.html 2.docker下载centos镜像(用作配置jd ...
- TokuDB安装
安装TokuDB 1, 创建mysql数据目录 #顺便把临时目录创建好 mkdir -p /data/mysql/tmp groupadd -r mysql useradd -g mysql -r - ...
- 连通图,set——cf1037E
看了题解又调了很久,用set来维护当前满足条件的pair<degree[v],v> 离线操作,先建好一张图,然后建立好集合,每次删边后都把集合里不满足条件的点删去,同时更新集合 /* 离线 ...
- SCOI2015
这周各种头疼,一直睡觉+发呆,啥子都没干. 就补一下之前的东西. d1t1小凸玩矩阵 传送门 一开始脑子抽写了最小费用最大流,不知道自己怎么想的. 第k大最小,明显的二分,又是二分图,二分第k大值,把 ...
- Template-Thymeleaf:Thymeleaf
ylbtech-Template-Thymeleaf:Thymeleaf 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. https://www.thyme ...
- java接口的意义
java当中继承一个接口,要重写他的方法的话,那为什么还要多此一举的去实现一个接口呢? 直接把方法写在类当中不就可以了?就是说去掉类名后面的Implements 接口 ,可以不可以呢? 接口的最主要的 ...
- 左神算法进阶班3_1构造数组的MaxTree
题目 一个数组的MaxTree定义: 数组必须没有重复元素 MaxTree是一棵二叉树,数组的每一个值对应一个二叉树节点 包括MaxTree树在内且在其中的每一棵子树上,值最大的节点都是树的头 给定一 ...
- jdk工具(转)
在JDK的bin目录下有很多命令行工具: 我们可以看到各个工具的体积基本上都稳定在27kb左右,这个不是JDK开发团队刻意为之的,而是因为这些工具大多数是jdk\lib\tools.jar类库的一层薄 ...
- 将UBB编码转成标准的HTML代码
/// <summary> /// 将UBB编码转成标准的HTML代码 /// </summary> /// <param name="argString&qu ...