摘要: 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. 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(日期 ...

  2. 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(日期 ...

  3. 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(日期 ...

  4. 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(日期 ...

  5. 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(日期 ...

  6. 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(日期 ...

  7. 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(日期 ...

  8. Django文档——Model字段类型(Field Types)

    大部分内容参考自http://wrongwaycn.github.io/django11/topics/db/models/index.html#topics-db-models ,内容是django ...

  9. django字段类型(Field types)介绍

    字段类型(Field types) AutoField 它是一个根据 ID 自增长的 IntegerField 字段.通常,你不必直接使用该字段.如果你没在别的字段上指定主 键,Django 就会自动 ...

随机推荐

  1. Easy to use cross-platform 3D engines

    C++ http://gamedev.stackexchange.com/questions/21/easy-to-use-cross-platform-3d-engines-for-c-game-d ...

  2. Spring技术内幕总结 - IoC容器的实现

    IoC:Inversion of Control,控制反转,即依赖对象的获得被反转了(DI:dependency inversion,依赖注入)在Spring中,IoC容器是实现这个模式的载体.它可以 ...

  3. 查看hp小型机命令集

    查看HP小型机的信息的命令集(一) 1.机型 #model 9000/800/L2000-44 注意:其中44是指每个cpu有440MHZ. 2.cpu个数 #top CPU LOAD USER NI ...

  4. JSON C# Class Generator ---由json字符串生成C#实体类的工具

    json作为互联网上轻量便捷的数据传输格式,越来越受到重视.但在服务器端编程过程中,我们常常希望能通过智能提示来提高编码效率.JSON C# Class Generator 能将json格式所表示的J ...

  5. win10 + VS2015 + 64位OSG3.4.0

    一.下载 1.osg源码 2.整理好的第三方库 3.cmake3.7.1绿色版 4.osg3.4.0数据包 二.编译前的准备工作 在D:\下新建一个OSG文件夹,在其下再新建4个文件夹 D:\OSG\ ...

  6. ML平台_设计要点

    如果说机器是人类手的延伸.交通工具是人类腿的延伸,那么人工智能就是人类大脑的延伸,甚至可以帮助人类自我进化,超越自我.人工智能也是计算机领域最前沿和最具神秘色彩的学科,科学家希望制造出代替人类思考的智 ...

  7. Go 缓冲信道和非缓冲信道

    非缓冲信道是一个进一个出,再一个进再一个出,信道内是不保存数据的 缓冲信道是可以很多个依次进去,存储在信道里,然后一个一个的按次序取出来. 不过缓冲信道如果超过了预期的存入个数,会发生信道阻塞,只有把 ...

  8. sql server 存储过程使用游标记录

    sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...

  9. idea下的调试配置

    react和ts的整合 https://github.com/Microsoft/TypeScript-React-Starter vue的 https://github.com/ducksoupde ...

  10. json server的简单使用(附:使用nodejs快速搭建本地服务器)

    作为前端开发人员,经常需要模拟后台数据,我们称之为mock.通常的方式为自己搭建一个服务器,返回我们想要的数据.json server 作为工具,因为它足够简单,写少量数据,即可使用. 安装 首先需要 ...