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"/>
上面的这个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
。
Solr字段类型field type的定义的更多相关文章
- 1.4.2 solr字段类型--(1.4.2.1)字段类型定义和字段类型属性
1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...
- 1.4.2 solr字段类型--(1.4.2.2)solr附带的字段类型
1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...
- 1.4.2 solr字段类型--(1.4.2.7)字段属性使用案例
1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...
- 1.4.2 solr字段类型--(1.4.2.6)使用外部文件和程序
1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...
- 1.4.2 solr字段类型--(1.4.2.5)使用枚举字段
1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...
- 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(日期 ...
- 1.4.2 solr字段类型--(1.4.2.3)使用货币和汇率
1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...
- Django文档——Model字段类型(Field Types)
大部分内容参考自http://wrongwaycn.github.io/django11/topics/db/models/index.html#topics-db-models ,内容是django ...
- django字段类型(Field types)介绍
字段类型(Field types) AutoField 它是一个根据 ID 自增长的 IntegerField 字段.通常,你不必直接使用该字段.如果你没在别的字段上指定主 键,Django 就会自动 ...
随机推荐
- maven 阿里云 国内镜像 中央仓库
修改maven根目录下的conf文件夹中的setting.xml文件,具体内容和示意图如下: <mirror> <id>alimaven</id> <name ...
- Webpack 的 Tree Shaking
为什么要使用 Tree Shaking? 当从某文件模块中导出(某一个或几个变量.函数.对象等),然而这个文件模块还有许多其它(我们这次并不需要)的导出,webpack会不管三七二十一简单粗暴的将整个 ...
- 弱网测试—Network-Emulator-Toolkit工具
参考别人网址:http://blog.csdn.net/no1mwb/article/details/53638681 弱网测试,属于健壮性测试:怎么样去做弱网测试呢? 一.安装弱网测试工具-Netw ...
- Hibernate更新删除数据后,再查询数据依然存在的解决办法
删除数据后,重新查询了数据库,DB中记录已经删除了,但是数据依然能查询到,网上都说是Hibernate的缓冲问题. 我对session进行了clear,flush,并且在事务和查询中都对session ...
- 大数据离线分析平台 JavaSDK数据收集引擎编写
JavaSDK设计规则 JavaSDK提供两个事件触发方法,分别为onChargeSuccess和onChargeRefund.我们在java sdk中通过一个单独的线程来发送线程数据,这样可以减少对 ...
- Linux paste命令详解
Linux paste命令 Linux paste命令用于合并文件的列.paste指令会把每个文件以列对列的方式,一列列地加以合并 将每个指定文件里的每一行整合到对应一行里写到标准输出,之间用制表符分 ...
- Base64 转 图片
static void Main(string[] args) { string s = "iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAIAAAABc2X6AAAAC ...
- PowerPoint’s Menu is Too Big
转自: http://jdav.is/2016/08/31/powerpoints-menu-is-too-big/ It seems that when Microsoft deployed the ...
- Java内部类的一些注意事项
背景:最近在做一个项目,为了保证前台风格的统一,前台选用的是GWT框架.GWT通过回调的方式向后台取得数据,在前台展示,因此很多的赋值操作只能在回调函数中通过set方法来实现.我的目的是从后台读取一个 ...
- RTMP与HLS压力测试工具安装与配置
在CentOS 6.5环境中安装依赖软件包,使用git下载最新版本st-load源码包 [root@localhost ~]# yum install git unzip patch gcc gcc- ...