Solr字段类型field type的定义
摘要: 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的定义相关推荐
- Elasticsearch中字段类型(Field Type)详解
ElasticSearch 7.7 字段类型(Field datatype)详解 字符串, object, 数值, 日期, 数组, 0x00 字符串: text, keyword 5.0以后,stri ...
- ES 字段类型Field type
1 核心数据类型 通过elasticsearch-head 创建一个索引 index_field 用于功能测试. 1.1 字符串 1.1.1 String 类型 ELasticsearch 5.X之后 ...
- 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(日期 ...
- 14亿条记录,12c 做不到2小时内变更表结构字段类型?
导读:本文详细讲述Oracle 12c 在2小时内完成一张14亿条记录的表结构字段类型变更的过程,希望可以帮到工作中的大家,如有任何疑问,欢迎在本文的评论区交流讨论. 概述 Oracle大表在线修改的 ...
- Oracle 12c 能否在2小时内完成一张14亿条记录的表结构字段类型变更
原文链接:https://www.modb.pro/db/22757 概述 前面分享过Oracle大表在线修改的脚本(在线重定义),经过几轮的测试发现,都存在些缺陷,效率始终不是很满意.这次把索引和统 ...
- 25.常用的字段类型映射关系,字段类型及Field的常用参数
1.常用的字段类型映射关系: 2常用的字段类型讲解: IntegerField : 整型,映射到数据库中的int类型. CharField: 字符类型,映射到数据库中的varchar类型,通过max_ ...
- mysql定义大字段longtxt_mysql中text,longtext,mediumtext等字段类型的意思,以及区别
mysql中text,longtext,mediumtext等字段类型的意思,以及区别 (2012-07-22 10:19:50) 标签: 浮点数 字符串 符号 范围 整数 杂谈 MySQL支持大量的 ...
- flask框架创建数据库定义字段类型和字段常用参数
1.字段类型 Integer int整型,普通整数,一般是32位 SmallInteger int 取值范围最小的整型,一般是16位 Big Integer int或long 不限制精度的整数 Flo ...
- laravel中的数据迁移表结构、字段类型、定义整理
最近使用laravel做项目,其他的用的还算比较熟练,就是在生成迁移文件的时候记不住每个字段类型都怎么表示,下面是整理的一些字段类型: /* 表引擎 */ $table->engine = 'I ...
最新文章
- RMS 谈自由软件运动和后门
- 箭头函数中的this
- python的优点和缺点-python的优点和缺点是什么?
- AndroidStudio 集成环信的一个坑
- ppp协议pap验证过程状态转移图_硬核分享|Crust 核心协议栈的设计与实现
- [转]Spring中property-placeholder的使用与解析
- 关于svn、git生成版本号脚本的再次改进
- elt php,ELT(数据仓库技术) 学习
- php 字符串表示,php:字符串(string)数据类型实例详解
- 技术人员,你的表达能力怎样?
- EGO1—实现计数器74HC163
- PTA 1096 大美数(Python3)
- windows清理_一个Windows系统下好用的内存清理工具
- 狂奔的蜗牛小组团队介绍
- php全角数字转半角,php代码中全角数字如何转半角
- 51单片机+LCD12864的万年历Proteus仿真
- PTW International宣布运营电竞战队“Orange Rock Esports”
- openflow初学者入门笔记一(openflow 1.0 and openflow 1.3)
- Java中使用zt-exec执行多shell/Linux命令,执行日志实时推送前端
- 提高网站访问速度方案