摘要: Solr的字段类型定义了Solr如何解析字段数据并将数据检索出来,了解Solr的字段类型定义有助于更好的配置与使用Solr。

字段类型的定义

字段类型的定义主要包含如下四个方面的信息:

  • 名称
  • 实现的类名
  • 如果field type 是TextField,则可以指定字段解析器
  • 字段类型属性

schema.xml中定义的字段类型

字段类型在schema.xml中指定,每一个字段类型被定义在fieldType标签之间,下面这个例子是一个text_general的字段类型:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> <!-- in this example, we will only use synonyms at query time <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> --> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> 

第一行包含了字段类型的名字“text_general”,是由类”solr.TextField”实现的,这个solr指的是org.apache.solr.schema或者org.apache.solr.analysis,也就是说solr.TextField指的是org.apache.solr.schema.TextField

字段类型属性

字段类型声明中,class已经基本确定了字段类型的行为,当然还可以通过一些属性参数来增加或改变某些行为。

<fieldType name="date" class="solr.TrieDateField" sortMissingLast="true" omitNorms="true"/>
  • 1
  • 2

上面的这个date类型有两个额外的属性”sortMissinglast”和”omitNorms”。
所有的属性可以归结为一下三种形式:

  • 字段类型的class
  • 通用属性,支持所有的字段类型
  • 默认属性,一些字段类型的属性是特有的,可以通过指定来修改默认值

通用属性

属性 说明
name 用于定义field的”type”  
class 定义了使用何种方式处理该类型数据  
positionLncrementGap 对于多值字段,指定多值的间距 整数
autoGeneratePhraseQueries 适用于text字段,Solr是否自动生成短语查询 布尔值
docValuesFormat 对于一个字段类型使用定制的DocValuesFormat  
postingsFormat 对于一个字段类型使用定制的PostingsFormat  

默认属性

属性 说明 默认值
indexed 字段值是否用于查询 布尔值 true
stored 字段真实值是否可以被查询到 布尔值 true
docValues 字段值是否列式存储 布尔值 false
sortMissingFirst sortMissingLast 没有指定排序规则时,控制文档排序 布尔值 false
multiValues 字段是否多值 布尔值 false
omitNorms 是否忽略不适用该字段的规范 布尔值 true
omitTermFreqAndPositions 是否忽略词频、位置等 布尔值 true
omitpositions 类似omitTermFreqAndPositions但保留词频 布尔值 true
termVectors 是否保留term vectors 布尔值 false
termPositions 是否保留term position 布尔值 false
termOffsets 是否保留term offset 布尔值 false
termPayloads 是否保留term payload 布尔值 false
required 是否拒绝空值的字段 布尔值 false
useDocValuesAsStored 如果字段是docValues,设置为true将允许字段在fl参数匹配“*”时返回数据 布尔值 false

字段类型相似性

字段类型可以指定一个similarity,用于对全局的相似性文档进行评分。默认情况下,不指定相似性的话,使用的是BM25Similarity

转载于:https://www.cnblogs.com/cuihongyu3503319/p/9448097.html

Solr字段类型field type的定义相关推荐

  1. Elasticsearch中字段类型(Field Type)详解

    ElasticSearch 7.7 字段类型(Field datatype)详解 字符串, object, 数值, 日期, 数组, 0x00 字符串: text, keyword 5.0以后,stri ...

  2. ES 字段类型Field type

    1 核心数据类型 通过elasticsearch-head 创建一个索引 index_field 用于功能测试. 1.1 字符串 1.1.1 String 类型 ELasticsearch 5.X之后 ...

  3. 1.4.2 solr字段类型--(1.4.2.4)使用Dates(日期)

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  4. 14亿条记录,12c 做不到2小时内变更表结构字段类型?

    导读:本文详细讲述Oracle 12c 在2小时内完成一张14亿条记录的表结构字段类型变更的过程,希望可以帮到工作中的大家,如有任何疑问,欢迎在本文的评论区交流讨论. 概述 Oracle大表在线修改的 ...

  5. Oracle 12c 能否在2小时内完成一张14亿条记录的表结构字段类型变更

    原文链接:https://www.modb.pro/db/22757 概述 前面分享过Oracle大表在线修改的脚本(在线重定义),经过几轮的测试发现,都存在些缺陷,效率始终不是很满意.这次把索引和统 ...

  6. 25.常用的字段类型映射关系,字段类型及Field的常用参数

    1.常用的字段类型映射关系: 2常用的字段类型讲解: IntegerField : 整型,映射到数据库中的int类型. CharField: 字符类型,映射到数据库中的varchar类型,通过max_ ...

  7. mysql定义大字段longtxt_mysql中text,longtext,mediumtext等字段类型的意思,以及区别

    mysql中text,longtext,mediumtext等字段类型的意思,以及区别 (2012-07-22 10:19:50) 标签: 浮点数 字符串 符号 范围 整数 杂谈 MySQL支持大量的 ...

  8. flask框架创建数据库定义字段类型和字段常用参数

    1.字段类型 Integer int整型,普通整数,一般是32位 SmallInteger int 取值范围最小的整型,一般是16位 Big Integer int或long 不限制精度的整数 Flo ...

  9. laravel中的数据迁移表结构、字段类型、定义整理

    最近使用laravel做项目,其他的用的还算比较熟练,就是在生成迁移文件的时候记不住每个字段类型都怎么表示,下面是整理的一些字段类型: /* 表引擎 */ $table->engine = 'I ...

最新文章

  1. RMS 谈自由软件运动和后门
  2. 箭头函数中的this
  3. python的优点和缺点-python的优点和缺点是什么?
  4. AndroidStudio 集成环信的一个坑
  5. ppp协议pap验证过程状态转移图_硬核分享|Crust 核心协议栈的设计与实现
  6. [转]Spring中property-placeholder的使用与解析
  7. 关于svn、git生成版本号脚本的再次改进
  8. elt php,ELT(数据仓库技术) 学习
  9. php 字符串表示,php:字符串(string)数据类型实例详解
  10. 技术人员,你的表达能力怎样?
  11. EGO1—实现计数器74HC163
  12. PTA 1096 大美数(Python3)
  13. windows清理_一个Windows系统下好用的内存清理工具
  14. 狂奔的蜗牛小组团队介绍
  15. php全角数字转半角,php代码中全角数字如何转半角
  16. 51单片机+LCD12864的万年历Proteus仿真
  17. PTW International宣布运营电竞战队“Orange Rock Esports”
  18. openflow初学者入门笔记一(openflow 1.0 and openflow 1.3)
  19. Java中使用zt-exec执行多shell/Linux命令,执行日志实时推送前端
  20. 提高网站访问速度方案

热门文章

  1. BZOJ2298 [HAOI2011]problem a
  2. PHP学习之路(一)工欲善其事,必先利其器(Zend配置)
  3. Spring Countries在Apusic上部署
  4. 一篇文章带你了解Flannel
  5. Multi-band Blending
  6. 开源ImageFilter库v0.3:新增22种图片效果
  7. IOS疯狂基础之UIImage
  8. MYSQL水平拆分与垂直拆分
  9. 关于ueditor多图上传加水印
  10. 富文本编辑器ckeditor的使用