时间字段类型特别说明
  
  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-索引详解)的更多相关文章

  1. Solr系列三:solr索引详解(Schema介绍、字段定义详解、Schema API 介绍)

    一.Schema介绍 1. Schema 是什么? Schema:模式,是集合/内核中字段的定义,让solr知道集合/内核包含哪些字段.字段的数据类型.字段该索引存储. 2. Schema 的定义方式 ...

  2. Solr部署详解

    Solr部署详解 时间:2013-11-24 方式:转载 目录 1 solr概述 1.1 solr的简介 1.2 solr的特点 2 Solr安装 2.1 安装JDK 2.2 安装Tomcat 2.3 ...

  3. MySQL 联合索引详解

    MySQL 联合索引详解   联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c ...

  4. Oracle索引详解

    Oracle索引详解(二) --索引分类   Oracle 提供了大量索引选项.知道在给定条件下使用哪个选项对于一个程序的性能来说非常重要.一个错误的选择可能会引发死锁,并导致数据库性能急剧下降或进程 ...

  5. 【详细解析】MySQL索引详解( 索引概念、6大索引类型、key 和 index 的区别、其他索引方式)

    [详细解析]MySQL索引详解( 索引概念.6大索引类型.key 和 index 的区别.其他索引方式) MySQL索引的概念: 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分 ...

  6. elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)

    一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...

  7. ES系列七、ES-倒排索引详解

    1.单词——文档矩阵 单词-文档矩阵是表达两者之间所具有的一种包含关系的概念模型,图3-1展示了其含义.图3-1的每列代表一个文档,每行代表一个单词,打对勾的位置代表包含关系. 图3-1 单词-文档矩 ...

  8. elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))

    一.分词器 1. 认识分词器  1.1 Analyzer   分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如 ...

  9. Solr系列五:solr搜索详解(solr搜索流程介绍、查询语法及解析器详解)

    一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query ...

  10. MySQL 索引详解大全

    什么是索引? 1.索引 索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据.对于索引,会保存在额外的文件中. 2. 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结 ...

随机推荐

  1. Tomcat性能优化方案

    1. 提高JVM栈内存Increase JVM heap memory 你使用过tomcat的话,简单的说就是"内存溢出". 通常情况下,这种问题出现在实际的生产环境中.产生这种问 ...

  2. A* 寻路的八个变种

    变种 1 - 束搜索(Beam Search) 在 A* 算法的住循环中,OPEN 集存储可能需要搜索的节点,用来以查找路径. 束搜索是 A* 的变体,它限制了OPEN集的大小. 如果集合变得太大,则 ...

  3. Hacknet 玩后感

    这款游戏的主题是黑客模拟.玩家需要帮助雇主搞定各种乱七八糟的需求. 你需要使用各种工具和各种linux命令行来获取对方电脑的Root权限.然后就是各种增删改查... 解密部分设计的太过简单,导致玩的时 ...

  4. php快速上手总结

    PHP作为现代热门主流的开发语言,对于那些想加入新手PHPer,从哪学起,如何学习?你必须要需要掌握PHP的基础知识,基础知识相当于重点,是不可忽视的知识.常用的功能模块,面向对象的,MVC等相关技能 ...

  5. 企业服务总线ESB

    # 企业服务总线ESB 由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务.消息以及基于事件的交互,并且具有适当的服务级别和可管理性. 通过使用ESB,可以在几乎不更改代码的情况下,以一 ...

  6. 笔试题——C++开发简单记录错误模块

    题目:链接:https://www.nowcoder.com/questionTerminal/67df1d7889cf4c529576383c2e647c48 来源:牛客网 解析及代码来源:http ...

  7. 简单理解DNS解析流程(一)

    0x0 简单理解dns DNS服务器里存着一张表 表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一 浏览器访问某个域名,实际上是访问它的ip地址 所以浏览器需要知道域名对应的ip地址 如 ...

  8. C++ 函数 内联函数

    内联函数的功能和预处理宏的功能相似,在介绍内联函数之前,先介绍一下预处理宏.宏是简单字符替换,最常见的用法:定义了一个代表某个值的全局符号.定义可调用带参数的宏.作为一种约定,习惯上总是用大写字母来定 ...

  9. C++ 函数 引用

    一.引用的概念 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样.引用的声明方法: 类型标识符 &引用名 = 目标变量名: 为一个变量起一个别名.假如有一个变量a,想给 ...

  10. 互评Alpha作品——Hello World!团队作品空天猎

    基于NABCD评论作品 1.Need需求:市面上同类型的手机及PC端飞行射击类游戏有很多,所以从需求方面来说,这款游戏的潜在客户非常有局限性.近些年较火的飞行射击类游戏,例如腾讯14年发行的<全 ...