搜索引擎(Solr-索引详解)
时间字段类型特别说明
Solr中提供的时间字段类型( DatePointField, DateRangeField,废除的TrieDateField )是以时间毫秒数来存储时间的。
要求字段值以ISO-8601标准格式来表示时间:YYYY-MM-DDThh:mm:ssZ
Z表示是UTC时间(注意:就没有时区了)。1999-05-20T17:33:18Z
秒上可以带小数来表示毫秒,超出精度部分会被忽略:
1972-05-20T17:33:18.772Z
1972-05-20T17:33:18.77Z
1972-05-20T17:33:18.7Z
公元前:在前面加减号 - 9999后,在前面加加号 +
注意:查询时如果是直接的时间串,需要用转移符转义:
datefield:1972-05-20T17\:33\:18.772Z
datefield:"1972-05-20T17:33:18.772Z"
datefield:[1972-05-20T17:33:18.772Z TO *]
DateRangeField 时间段类型特别说明
DateRangeField用来支持对时间段数据的索引,它遵守上一页讲到的时间格式,支持两种时间段表示方式:
方式一:截断日期,它表示整个日期跨度的精确指示。
方式二:范围语法 [ TO ] { TO }
2000-11 表示2000年11月整个月.
2000-11T13 表示200年11月每天的13点这一个小时
-0009 公元前10年,0000是公元前1年。
[2000-11-01 TO 2014-12-01] 日到日
[2014 TO 2014-12-01] 2014年开始到2014-12-01止.
[* TO 2014-12-01] 2014-12-01(含)前.
时间数学表达式
Solr中还支持用 NOW +- 时间的数学表达式来灵活表示时间。语法 NOW +- 带单位的时间数,/单位 截断。可用来表示时间段。
NOW+2MONTHS
NOW-1DAY
NOW/HOUR
NOW+6MONTHS+3DAYS/DAY
1972-05-20T17:33:18.772Z+6MONTHS+3DAYS/DAY
NOW在查询中使用时,可为NOW指定值
q=solr&fq=start_date:[* TO NOW]&NOW=1384387200000
EnumFieldType 枚举字段类别说明
EnumFieldType 用于字段值是一个枚举集,且排序顺序可预定的情况,如新闻分类这样的字段。定义非常简单:
<fieldType name="priorityLevel" class="solr.EnumFieldType" docValues="true" enumsConfig="enumsConfig.xml" enumName="priority"/>
enumsConfig:指定枚举值的配置文件,绝对路径或相对 内核conf/的相对路径
enumName:指定配置文件的枚举名。排序顺序是按配置的顺序。
docValues : 枚举类型字段必须设置 true;
枚举配置示例
<?xml version="1.0" ?>
<enumsConfig>
<enum name="priority">
<value>Not Available</value>
<value>Low</value>
<value>Medium</value>
<value>High</value>
<value>Urgent</value>
</enum>
<enum name="risk">
<value>Unknown<www.dasheng178.com /value>
<value>Very Low</value>
<value>Low<www.mcyllpt.com www.tiaotiaoylzc.com/ /value>
<value>Medium<www.mushi157.com /value>
<value>High</value>
<value>Critical</value>
</enum>
</enumsConfig>
练习4 定义Field
prodId:商品id,字符串,不索引、存储;
name: 商品名称,字符串,分词、索引、存储
simpleIntro:商品简介,字符串,分词、索引、不存储
price:价格,整数(单位分),索引,存储
uptime:上架时间,索引、docValues 支持排序
<field name=“” type=“”www.fengshen157.com default=“www.michenggw.com ” indexed="true" stored="true"/>
dynamic Field 动态字段
问:如果模式中有近百个字段需要定义,其中有很多字段的定义是相同,重复地定义是不是很烦?
可不可以定一个规则,字段名以某前缀开头或结尾的是相同的定义配置,那这些重复字段就只需要配置一个,保证提交的字段名称遵守这个前缀、后缀即可。
这就是动态字段。
如:整型字段都是一样的定义,则可以定义一个动态字段如下:
<dynamicField name="*_i" type=“my_int" indexed="true" stored="true"/>
也可以是前缀,如 name=“i_*”
搜索引擎(Solr-索引详解)的更多相关文章
- Solr系列三:solr索引详解(Schema介绍、字段定义详解、Schema API 介绍)
一.Schema介绍 1. Schema 是什么? Schema:模式,是集合/内核中字段的定义,让solr知道集合/内核包含哪些字段.字段的数据类型.字段该索引存储. 2. Schema 的定义方式 ...
- Solr部署详解
Solr部署详解 时间:2013-11-24 方式:转载 目录 1 solr概述 1.1 solr的简介 1.2 solr的特点 2 Solr安装 2.1 安装JDK 2.2 安装Tomcat 2.3 ...
- MySQL 联合索引详解
MySQL 联合索引详解 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c ...
- Oracle索引详解
Oracle索引详解(二) --索引分类 Oracle 提供了大量索引选项.知道在给定条件下使用哪个选项对于一个程序的性能来说非常重要.一个错误的选择可能会引发死锁,并导致数据库性能急剧下降或进程 ...
- 【详细解析】MySQL索引详解( 索引概念、6大索引类型、key 和 index 的区别、其他索引方式)
[详细解析]MySQL索引详解( 索引概念.6大索引类型.key 和 index 的区别.其他索引方式) MySQL索引的概念: 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分 ...
- elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)
一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...
- ES系列七、ES-倒排索引详解
1.单词——文档矩阵 单词-文档矩阵是表达两者之间所具有的一种包含关系的概念模型,图3-1展示了其含义.图3-1的每列代表一个文档,每行代表一个单词,打对勾的位置代表包含关系. 图3-1 单词-文档矩 ...
- elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))
一.分词器 1. 认识分词器 1.1 Analyzer 分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如 ...
- Solr系列五:solr搜索详解(solr搜索流程介绍、查询语法及解析器详解)
一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query ...
- MySQL 索引详解大全
什么是索引? 1.索引 索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据.对于索引,会保存在额外的文件中. 2. 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结 ...
随机推荐
- Python之Django基本命令
一.新建项目 $django-admin.py startproject project_name # 特别是在 windows 上,如果报错,尝试用 django-admin 代替 django-a ...
- python装饰器(披着羊皮的狼)
python装饰器的作用是在不改变原有函数的基础上,对函数的功能进行增加或者修改. 装饰器语法是python语言更加优美且避免很多繁琐的事情,flask中配置路由的方式便是装饰器. 首先python中 ...
- ipython快捷键操作及常用命令
Ipython shell命令- Ctrl-P 或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令- Ctrl-N 或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令- Ctrl-R 按行 ...
- Spring Boot + MyBatis + Pagehelper 配置多数据源
前言: 本文为springboot结合mybatis配置多数据源,在项目当中很多情况是使用主从数据源来读写分离,还有就是操作多库,本文介绍如何一个项目同时使用2个数据源. 也希望大家带着思考去学习!博 ...
- shutil模块详解
python常用模块目录 注意:shutil经常遇到路径需要转义一下才能执行,在字符串前面加 r转义 r" " 1.shutil常用方法 import shutil# 删除目录 ...
- iOS 开发中,关于xxx.xcodeproj 文件冲突的解决方案 (以后谁不会了,直接将连接给他)
iOS 开发中,关于xxx.xcodeproj 文件冲突的解决方案 (一有冲突要手把手教一遍,太麻烦了,现在总结下,以后谁不会了,连接直接发他). 关于xxx.xcodeproj 文件冲突的话,是比较 ...
- web09 struts2配置 struts2入门
电影网站:www.aikan66.com 项目网站:www.aikan66.com游戏网站:www.aikan66.com图片网站:www.aikan66.com书籍网站:www.aikan66.co ...
- Task 4.2 求一个矩阵的最大子矩阵的和
任务:输入一个二维整形数组,数组里有正数也有负数.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). (1)设计思想:把二维矩阵分解成 ...
- 剑指offer:矩形覆盖
题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路: 和跳台阶那道题差不多.分别以矩形的两条边长做拓 ...
- HDU 4418 Time travel 期望dp+dfs+高斯消元
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4418 Time travel Time Limit: 2000/1000 MS (Java/Othe ...