时间字段类型特别说明
  
  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. centos7安装vim以及在vim中显示中文

    1.centos7安装vim yum -y install vim(简单粗暴安装方法) 2.在vim中显示中文不出现乱码 (1).vim ~/.vimrc (~/.vimrc为vim配置文件) (2) ...

  2. oracle的多表合并查询-工作心得

    本随笔文章,由个人博客(鸟不拉屎)转移至博客园 发布时间: 2018 年 11 月 29 日 原地址:https://niaobulashi.com/archives/oracle-select-al ...

  3. ngxin 添加模块

    if test -n "$NGX_ADDONS"; then echo configuring additional modules for ngx_addon_dir in $N ...

  4. Python-RabbitMQ(简单发送模型)

    RabbitMQ需要 erlang 和pika 1.RabbitMQ和erlang版本必须匹配,否则就报没有进程错误 2.RabbitMQ的erlang.cookie和windows下的erlang. ...

  5. NIO基本概念

    1.  IO和NIO的区别 IO     面向流(stream oriented)  阻塞(blocking io) 无                  NIO  面向缓冲区(buffer orie ...

  6. 点击小图查看大图jQuery插件FancyBox魔幻灯箱

    今日发现一个不错的JQuery插件FancyBox,也许早就有这个插件了,但是没名字,我就暂且叫他魔幻灯箱吧,采用Mac系统的样式.网传主要有以下功能:■弹出的窗口有很漂亮的阴影效果.■关联的对象(就 ...

  7. iOS软件"一天八杯水“app开发过程

    作为一个ios系统测试者和app外观设计者.我们首先要了解iOS系统的开发工具和资源.xcode和iOS sdk作为一个免费的开发环境值得我们去学习和了解.interface builder提供创建了 ...

  8. Linux环境下Web环境搭建——Nginx

    1.安装依赖 yum -y install make gcc gcc-c++ ncurses-devel  ##编译环境 yum -y install zlib zlib-devel openssl ...

  9. Alpha阶段项目Postmortem会议总结

    (一)设想和目标 1.我们的软件要解决什么问题?是否定义的很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要解决总是不知道在什么时间该做什么事情,或是老是忘记做一些事情的问题,通过添加事件 ...

  10. 剑指offer :跳台阶

    这题之前刷leetcode也遇到过,感觉是跟斐波拉契差不多的题. 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 解 ...