Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(2)
接上篇
2. <dynamicField>
为满足前辍或后辍的一些字段提供统一的定义。如<dynamicField name="*_s" index="true" stored="true" type="string" /> 表示所有以“_s”为后辍的field都具有index="true" stored="true" type="string" 这些属性。dynamicField通常用于以下情形:
2.1 document模型具有较多的字段
举个粟子:想要索引pdf文件,Solr提供了一个简单的requestHandler -- /update/extract,最终会调用apache的另外一个开源项目Tika去解析pdf文件,Solr返回的解析后的document里包含了很多field,我们只想要其中的某些field,如果我们在<field>里只配置了我们想要的field,那么进行索引的时候会报错,错误消息大体为没有定义什么什么field,这时,我们可以配置一个<dynamicField name="ignore_*" type="ignored" multiValued="true">,然后在solrconfig.xml里相应的requestHandler里配置<str name="uprefix">ignore_</str>,这样对于在managed-schema里没定义的field都会被忽略掉。
2.2 支持来自不同来源的文档
比如索引的时候想要增加标注其来源的field,可以进行如下的配置:
<field name="source1_field1" type="string" index="true" stored="true" />
<field name="source1_field2" type="string" index="true" stored="true" />
<field name="source1_field3" type="string" index="true" stored="true" />
...
<field name="source2_field1" type="string" index="true" stored="true" />
<field name="source2_field2" type="string" index="true" stored="true" />
<field name="source2_field3" type="string" index="true" stored="true" />
但是如果有很多来源的话,这种配置就太多了。我们只须配置<dynamicField name="*_s" index="true" stored="true" type="string" />,然后索引的时候改成:
<doc>
<field name="id">hello</field>
<field name="source1_field1_s">hello</field>
</doc>
这样,索引时的field名既可以保留来源的信息,又不需要在配置文件里配置很多的field定义。
2.3 增加新的文档来源
还是上面的例子,如果将来有新的文档来源,我们可以不必在配置文件里增加诸如 <field name="source5_field1" type="string" index="true" stored="true" />这样的配置,就可以直接在索引的时候添加“source5_field1_s”这样的字段。
3. <uniqueKey>
一般情况下需要配置<uniqueKey>id</uniqueKey>,虽然目录不是必须的,但是强烈建议设置此值。就好像数据库设计时,虽然不强制每个表有主键,但是一般情况下还是会设置一个主键的。
4. <copyField>
用百度或google搜索时,我们可能想要搜索一个人名,或者书名,或者网站的名字,其后台索引文件里分别由不同的field去保存那些值,那它是如何用一个输入框去搜索不同的field的内容的呢?答案就是<copyField> (不知道百度或google用的是什么搜索技术,但是原理应该差不多)
<field name="text" type="string" index="true" stored="true" multiValues="true" />
<copyField source="man_name" dest="text" />
<copyField source="book_name" dest="text" />
<copyField source="web_address" dest="text" />
这样我们就只需要搜索text里的内容就可以了。
Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(2)的更多相关文章
- 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 事务本 ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(1)
刚学Solr(版本6.7.0),新建一个core时,提示要求schema.xml文件,我找了半天也没在源码包中找到名为schema.xml的文件.这个版本其实用的是managed-schema文件,没 ...
随机推荐
- IIS部署网站(建站)
双击IIS图标,运行IIS服务器: 如下图所示: 2 IIS打开后,选中网站,然后右键,在弹出的菜单中,选择新建,然后选择网站:如下图所hi: 3 在弹出的窗口中,直接点击下一步:如下图所示: 4 ...
- 分享知识-快乐自己:虚拟机 NET 网络配置
第一步: 第二步: 第三步: 第四步: 第五步: 第六步: 第七步: 第九步: 第十步: 第十一步: 第十二步: 第十三步: 成功. 第十四步:开启开机自启动网路连接 cd /etc/sy ...
- hdu 2955 Robberies(01背包)
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- AMD模块定义规范
AMD 即Asynchronous Module Definition,中文名是“异步模块定义”的意思.它是一个在浏览器端模块化开发的规范,服务器端的规范是CommonJS. 模块将被异步加载,模 ...
- http接口测试框架-构想图
写这篇,是当初如何学习,如何写,如何实现,总体的流程
- hdu5612 Baby Ming and Matrix games (dfs加暴力)
Baby Ming and Matrix games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
- 《Effective C++》学习笔记(一)
1.const成员函数不能更改成员变量 #include <bits/stdc++.h> using namespace std; class CtextBlock { public: s ...
- ACM学习历程—UESTC 1222 Sudoku(矩阵)(2015CCPC H)
题目链接:http://acm.uestc.edu.cn/#/problem/show/1226 题目大意就是构造一个行列和每个角的2*2都是1234的4*4矩阵. 用dfs暴力搜索,不过需要每一步进 ...
- django autocommit的一个坑,读操作的事务占用导致锁表
版权归作者所有,任何形式转载请联系作者.作者:petanne(来自豆瓣)来源:https://www.douban.com/note/580618150/ 缘由:有一个django守护进程Daemon ...
- 人物-IT-刘强东:刘强东
ylbtech-人物-IT-刘强东:刘强东 刘强东,男,汉族,1973年3月10日生(另一说法:1974年2月14日),江苏宿迁人,祖籍湖南湘潭 .京东集团董事局主席兼首席执行官,本科毕业于中国人民大 ...