Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(1)
刚学Solr(版本6.7.0),新建一个core时,提示要求schema.xml文件,我找了半天也没在源码包中找到名为schema.xml的文件。这个版本其实用的是managed-schema文件,没学过以前的版本,所以不知道是从哪个版本开始不使用schema.xml的,其实内容都一样,搞不懂为啥要换个名字,而且内容格式是xml,但是文件名却没有.xml的后辍。个人感觉是吃饱了撑的。
为了学习方便,我是在windows下做的,以下{Solr.home}是指解压后的文件目录。在{Solr.home}\bin下运行 solr -e techproducts, 这样我们就能在{Solr.home}\example\techproducts\solr\techproducts\conf 下找到managed-schema文件,文件有很详细的注释,下面的文件就是以那个文件为基础进行的一些翻译。
边学边写,关于Solr的学习笔记中,有很多内容来自《Solr in action》和apache给出的guide,加上了一些自己的理解,有可能有表达错误的地方,以后学深入,再回头来改。
managed-schema中主要有以下几种元素:
1. <field>
定义Solr索引的document里的字段,这个一般是根据具体的搜索应用来定义需要有什么字段。有三个特殊一点的字段,分别是:"_version_", "_root_" 和 "id",详见最后面的sample文件。
属性 | 默认值 | 说明 |
name | 必须,不能取名score,前后辍为下划线的名字(如:_VERSION_)为保留名字 | |
type | 必须。值为定义的<fieldType> | |
indexed | true | 是否进行索引。 true的时候进行索引。 |
stored | true | 是否存储。如果此字段的值需要显示在搜索结果中,则需要进行存储。 |
docValues | false |
是否需要存储docValues。docValues用于提升sorting, faceting, grouping, function queries 等性能,现在仅支持StrField, UUIDFiel和所有的Trie*Fields和 *PointFields、日期字段和枚举字段, 此值为true的字段要求此字段 multiValued=false, 并且 (required=true或设置了default的值). |
multiValued | false | 是否有多个值。 |
omitNorms | 见下面的说明 | |
termVectors | false | 设置为true,使More Like This特性生效,会极大的增加索引文件的大小。 |
termPositions | false | 通常用于提高高亮搜索结果这一功能的性能。设置为true,会增加索引文件的大小。 |
termOffsets | false | 通常用于提高高亮搜索结果这一功能的性能。设置为true,会增加索引文件的大小。 |
termPayloads | false | 通常用于提高高亮搜索结果这一功能的性能。设置为true,会增加索引文件的大小。 |
required | false | 如果设置为true,则索引时,如果此字段值为null,则会报错。 |
default | 此字段的默认值。通常用于记录索引生成的当前时间 | |
sortMissingFirst sortMissingLast |
false | 需要对搜索结果根据某个字段排序时,如果某条记录的此字段值为空,则该记录是排在搜索结果的最前/最后 |
omitTermFreqAndPositions |
对所有不是文本类型的字段,默认为TRUE | |
omitPositions |
与omitTermFreqAndPositions相似,只是仅忽略位置信息 | |
useDocValuesAsStored |
当docValues=true时,设置此值为TRUE,则如果返回的字段列表使用了通配符,即使此字段设置了stored=false, 此字段还是会出现在返回的结果里, |
|
large |
false |
设置为TRUE时,需要设置stored=true和multiValued=false, 表示此字段是大字段,会被懒加载。 通常用于此字段的内容可能比较大,不需要载入内存 |
对一些属性的详细点的说明:
omitNorms:
norm是基于document length norm,document boost和field boost计算出的浮点(float)值。这里的boost可以理解为权重。document length norm用于为较小的document增加权重(权重较大的话,计算搜索结果的score值会更高一点)。也就是说如果有一个比较小的document和一个比较长的document都符合搜索条件,Lucene会认为那个较小的document相对于较长的document更新符合搜索条件。omitNorms是指忽略norm,所以设为false时,较小的document和较长的document有相同的权重。因此如果我们需要为某个字段在索引时进行加权(boost),则应该设置为false。当字段类型为基本类型(比如:int, float,date,bool. string)时此默认值是true。
termVectors, termPositions, termOffsets 和 termPayloads :
此四个属性通常用于 hl.useFastVectorHighlighter为true时的情况,会较大地增加索引大小
omitTermFreqAndPositions:
如果为TRUE,索引时将忽略频率、位置、负载等信息,这有助于提升不需要这些信息的字段的性能,也会减少索引大小。但是查询如果依赖于字段的位置信息,则会导致查询不到相关document。
上一篇:
Solr6.7 学习笔记(01) -- 目录结构
Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(1)的更多相关文章
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) -- 样例(6)
managed-schema 样例: <?xml version="1.0" encoding="UTF-8" ?> <!-- License ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) - filter(5)
自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> < ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(3)
5. <fieldType> fieldType主要定义了一些字段类型,其name属性值用于前面<field>中的type属性的值.e.g. <fieldTyp ...
- Solr 6.7学习笔记(04)-- Suggest
当我们使用baidu或者Google时,你输入很少的字符,就会自动跳出来一些建议选项,在Solr里,我们称之为Suggest,在solrconfig.xml里做一些简单的配置,即可实现这一功能.配置如 ...
- 软件测试之loadrunner学习笔记-02集合点
loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...
- 机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN)
机器学习实战(Machine Learning in Action)学习笔记————02.k-邻近算法(KNN) 关键字:邻近算法(kNN: k Nearest Neighbors).python.源 ...
- OpenCV 学习笔记 02 使用opencv处理图像
1 不同色彩空间的转换 opencv 中有数百种关于不同色彩空间的转换方法,但常用的有三种色彩空间:灰度.BRG.HSV(Hue-Saturation-Value) 灰度 - 灰度色彩空间是通过去除彩 ...
- SaToken学习笔记-02
SaToken学习笔记-02 如果排版有问题,请点击:传送门 常用的登录有关的方法 - StpUtil.logout() 作用为:当前会话注销登录 调用此方法,其实做了哪些操作呢,我们来一起看一下源码 ...
- Redis:学习笔记-02
Redis:学习笔记-02 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 4. 事物 Redis 事务本 ...
随机推荐
- 英语发音规则---J字母
英语发音规则---J字母 一.总结 一句话总结: j只发[dʒ]音:jeep [dʒiːp] n. :jail [dʒeɪl] n. jeep [dʒiːp] n. 吉普车 jar [dʒɑː] n. ...
- 二 Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器
Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器 这一节主讲url控制器 一.urls.py模块 这个模块是配置路由映射的模块,当用户访问一个 ...
- name lookup of 'res' changed for new ISO 'res' scoping
#include<iostream> using namespace std; int pow ( int val, int exp ); int main() { int val = 2 ...
- PHP 常量、PHP 变量全解析(超全局变量、变量的8种数据类型等)
常量特点 常量一旦被定义就无法更改或撤销定义. 常量名不需要开头的$ 与变量不同,常量贯穿整个脚本是自动全局的. 作用域不影响对常量的访问 常量值只能是字符串或数字 设置 PHP 常量 如需设置常量, ...
- MVC5中EF6 Code First启动慢及间隙变慢的一些优化处理
问题描述: 第一次访问的时候很慢,后面再次打开页面很快,过了一段时间不访问页面然后再次打开页面又像第一次那样很慢. 采用的技术和环境: 使用技术:EF6+MVC5 服务器环境:Windows 2012 ...
- codeforces 710A A. King Moves(水题)
题目链接: A. King Moves 题意: 给出king的位置,问有几个可移动的位置; 思路: 水题,没有思路; AC代码: #include <iostream> #include ...
- 欧拉函数(汇总&例题)
定义 欧拉函数 $\varphi(n)$表示小于等于$n$的正整数中与$n$互质的数的数目. 性质 1.积性函数(证明). 2.$\varphi(1)=1$(显然) 3.对于质数$n$,$\varph ...
- python之路-进程
博客园 首页 新随笔 联系 管理 订阅 随笔- 31 文章- 72 评论- 115 python之路——进程 阅读目录 理论知识 操作系统背景知识 什么是进程 进程调度 进程的并发与并行 ...
- android开发 MyEclipse下测试连接MySQL数据库
1.首先要加载MySQL驱动包. 步骤:右击项目找到build path->configure build path->libraries——>add External JARs添加 ...
- HDOJ1677(铺砖问题)
Nested Dolls Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...