Solr的学习使用之(二)schema.xml等配置文件的解析
上一篇文章已经讲解了如何部署Solr,部署是部署完了,可是总觉得心里空空的,没底,里面有N多配置文件,比如schema.xml、solrConfig.xml、solr.xml and so on……都不知道他们是来干嘛的,所以要先了解下整体的项目架构、基本原理,才能在后续的工作中,更加熟练,须知挨踢行业,必须求甚解。以前不管是上学,还是做其他事情,都是在没有了解其原理的基础上就开工,导致了似懂非懂的一种状态,这种情况就是在现有的范围、环境下可以应付得来,但是如果环境一变,那就束手无策了。正所谓磨刀不误砍柴工,所以,必须了解下基本原理,才能更好的在路上。
以下是一些Solr的项目结构、配置文件的讲解:
作者讲解了Solr Core、schema.xml、solrConfig.xml文件的含义,以MySql来做对比,这样更加通俗易懂,比如solr的core就相当于数据库,schema.xml相当于表等等
http://www.ecmkit.com/zh-hans/taxonomy/term/287
- schema.xml:
schema.xml的结构比较简单,主要分为2 部分types和fields。types部分定义了字段类型的定义信息,比如int,string等;而在fields部分则定义了Solr将会存储哪些信息,fields内的字段是根据你的业务需求来定义的。types和fields的关系其实也很明显,就是types被fields所引用。举例来说,fields内定义了,该字段的类型是string,而string类型的定义就是在types中定义的。
- types
我们知道<types>内定义了一些数据类型,这些数据类型会被<fields>引用。就先来看一个常见的定义:<fieldType name="int" class="solr.TrieIntField" precisionStep="8" omitNorms="true" positionIncrementGap="0"/>。很明显这是一个数值类型的定义,在solr中,数值类型包括int, float, long, double以及日期类型(date),而对于这些数值类型,基本上都是用Trie开始的类型,例如"solr.TrieFloatField","solr.TrieDateField"等。Trie开始的类型能满足你至少95%以上的需求,因此除非有特殊理由,不然还是老老实实用Trie开始的类型吧。
- fieldType
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter/>
</analyzer>
</fieldType>
首先应该注意到有2个analyzer。一个是index,另外一个是query。也就是说<analyzer type="index">是用在index阶段,而<analyzer type="query">用在查询阶段—你所输入的查询内容也是需要通过分析最终产生token,然后和index里的token匹配。
<tokenizer class="solr.StandardTokenizerFactory"/>当然就是对应分析链中的起点Tokenizer。接下来串联了2个filter,分别是solr.StopFilterFactory,solr.LowerCaseFilterFactory。stop word filter就是把那些the, of, on之类的词从token中去除掉,由于这类词在文档中出现的频率非常高,而对文档的特征又没什么影响,所以这类词对查询没什么意义。Lower case filter的作用是将所有的token转换成小写,也就是在最终的index中保存的都是小写。
以下还有一篇关于schema.xml文件配置的详细解释,赞一个:
http://blog.csdn.net/liuweitoo/article/details/8137124
在路上……
Solr的学习使用之(二)schema.xml等配置文件的解析的更多相关文章
- SOLR企业搜索平台 三 (schema.xml配置和solrj的使用)
标签:solrj 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://3961409.blog.51cto.com/3951409/8 ...
- MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
在上一章中我们学习了<MyBatis学习总结(一)——ORM概要与MyBatis快速起步>,这一章主要是介绍MyBatis核心配置文件.使用接口+XML实现完整数据访问.输入参数映射与输出 ...
- Spring学习笔记之二----基于XML的Spring AOP配置
在Spring配置文件中,通常使用<aop:config>元素来设置AOP,其中应包括: <aop:aspect>指定aspect,aspect是一个POJO类,包含了很多的a ...
- Maven学习归纳(二)——几个常用命令解析
Maven的常用命令 第一次执行命令的时候,因为需要下载执行命令的基础环境,所以会从远程仓库下载该环境到本地仓库中 运行mvn命令,必须在pom.xml文件所在的目录 一. JavaProject的p ...
- MySQL高级学习笔记(二):mysql配置文件、mysql的用户与权限管理、mysql的一些杂项配置
文章目录 mysql配置文件 二进制日志log-bin 错误日志log-error 数据文件 两系统 Myisam存放方式 innodb存放方式 如何配置 mysql的用户与权限管理 MySQL的用户 ...
- 数据库中间件DBLE学习(二) 学习配置schema.xml
前言 一边有一个经常引诱我让我"娱乐至死"的视频,还有一个不停"鞭策"我让我快点学习的大BOSS.正是有这两种极端的爱才让我常常在自信中明白自己努力的方向.嗯, ...
- 利用SOLR搭建企业搜索平台 之——模式配置Schema.xml
来源:http://blog.csdn.net/awj3584/article/details/16963525 schema.xml这个配置文件可以在你下载solr包的安装解压目录的\solr\ex ...
- Solr 配置文件之schema.xml
schema.xml这个配置文件的根本目的是为了通过配置告诉Solr怎样建立索引. solr的数据结构例如以下: document:一个文档.一条记录 field:域.属性 solr通过搜索某个或某些 ...
- solr 6.0 没有schema.xml未自动创建schema文件
solr 6.0 没有schema.xml未自动创建schema文件 摘要:在之前的Solr版本中(Solr5之前),在创建core的时候,Solr会自动创建好schema.xml,但是在之后的版本中 ...
随机推荐
- 37行代码构建无状态组件通信工具-让恼人的Vuex和Redux滚蛋吧!
状态管理的现状 很多前端开发者认为,Vuex和Redux是用来解决组件间状态通信问题的,所以大部分人仅仅是用于达到状态共享的目的.但是通常Redux是用于解决工程性问题的,用于分离业务与视图,让结构更 ...
- 《Webkit技术内幕》之页面渲染过程
文章同步到github<Webkit技术内幕>之页面渲染过程 最近拜读了传说中的<Webkit技术内幕>一书,有很大收获,尤其是对页面渲染有了较深的认识.由于功力有限,而且书中 ...
- IO流之RandomAccessFile和File
通过学习一些经典案例来复习基础 ------------------------------------------------------------------------------------ ...
- 【ElicitSearch】启动流程
一.集群启动流程 1.选举主节点 许多节点启动,集群干的第一件事儿就是选主,之后的的流程由主节点触发. 先确定唯一的.大家公认的主节点:再想办法把最新的及其原数据复制到选举的主节点上. 选主是对Bul ...
- ckeditor如何能实现直接粘贴把图片上传到服务器中?
在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...
- 20180709-Java循环结构
while(布尔表达式){ //循环内容} public class Test{ public static void main(String args[]){ int x = 10; while(x ...
- BUUCTF | [RoarCTF 2019]Easy Calc
看一下页面源码,发现了提示: calc.php?num=encodeURIComponent($("#content").val()) $("#content" ...
- [CSP-S模拟测试]:X国的军队(贪心)
题目描述 $X$国和$Y$国开战了! 作为$X$国的军事参谋,你了解到事态的严峻性.为了更好地应付敌人,你收集到了$Y$国城市中$n$个据点的信息,你打算攻破这$n$个据点! 每个据点$i$的信息由火 ...
- 设置Select下拉多选框功能,赋值与绑定问题
项目需要所以更改select为多选下拉的菜单选项. 我用的是后台直接绑定 在前台aspx页面直接写一个 <div id="dropsxs" runat="serve ...
- AtCoder Regular Contest 071 D - 井井井 / ###
题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...