`
了_凡
  • 浏览: 7965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

创建Field时用到的FieldType类型说明

阅读更多
之前一直用Lucene老版本,今天看了下4.6发现好多配置都变了地儿,也是翻翻文档才找到怎么用,下面简单说说怎么用,有不明确的地方请大神指教。

首先在创建Field时,构造函数中有一项参数为FieldType type, FieldType实现IndexableFieldType接口,IndexableFieldType接口中有几个方法都是建立Field常用的这里不多说了。

说下常用的FieldType有
StringField(可索引,不细分词)、
TextField(分词)、
LongField(和TextField相像但有些别)、
StoredField(存储 Field信息)、
DocValuesField(存储Doc对应的Term信息)、
NumericType(数字域)。

上面写的这些都是对FieldType对像中属性的设置组合封闭。
详细说明一下FieldType包含的属性对建立Field和索引的影响。

indexed:    Field值是否生成Term。
stored:     是否存储。 
tokenized:  是否分词。   
storeTermVectors: 是否存储向量信息。
storeTermVectorOffsets
storeTermVectorPositions
storeTermVectorPayloads: 是否存储Payloads信息。
omitNorms:  是否存储norm信息,用于评分Boost值和会处理。
frozen:      用来阻止Field在实例化后完成前修改。(checkIfFrozen方法会用到这个属性,官方建议设置为true)。
indexOptions--| 根据自己的业务对不同的Field进行个性化设置,提升效率和内存空间。
                   |DOCS_ONLY:文档只包含索引,位置和词频将忽略,查询短语和位置信息将引起异常.
                |DOCS_AND_FREQS:文档只包含索引和词频,位置将忽略,这个可以正常评分,查询短语和位置也将引发异常.
                |DOCS_AND_FREQS_AND_POSITIONS:文档包含索引位置和词频,这是一个典型的默认为全文搜索:全部启用评分和位置查询的支持.
                |DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS:文档包含索引、位置、词频和偏移量。

docValueType--| 通过docid,找到doc包含的Term,在我理解他与FieldCache数组差不多,只不过支持多个Term的对回。
                   |NumericDocValuesField:数字类型。
                   |SortedDocValuesField:字符类型。
                   |SortedSetDocValuesField:支持多Term。

建立Field时可以选择已经封装好的FieldType易读,也可以自己封闭灵活。
分享到:
评论

相关推荐

    Delphi中JSon_SuperObject_使用数据集与JSON对象互转

    {"JsonType": "string", "FieldIndex": 1, "FieldType": "String", "FieldSize": 100, "FieldName": "Title", "Required": false}, {"JsonType": "variant", "FieldIndex": 2, "FieldType": "Blob", "FieldSize": ...

    AO数据的创建

    在创建Shapefile时,我们需要用到ArcObjects库中的几个关键类和接口: 1. **工作空间工厂类** (IWorkspaceFactory): 这是创建或打开工作空间的基础,例如ShapefileWorkspaceFactory用于创建Shapefile工作空间。不同...

    MongoDB的$type操作符.pdf

    在MongoDB中,查询数据时,我们可能会遇到需要根据数据类型进行筛选的情况,这时就用到了$type操作符。$type操作符允许我们基于BSON(Binary JSON)类型来查询文档中的字段,确保返回的结果符合特定的数据类型。 ...

    sql文档查询

    创建和删除索引分别用到`CREATE INDEX`和`DROP INDEX`: ```sql CREATE [UNIQUE] INDEX idxname ON tabname (col….); DROP INDEX idxname; ``` 索引一旦建立,其结构不可更改,只能删除重建。 视图是基于查询结果...

    跟益达学Solr5之拼音分词

    1. 在`schema.xml`文件中,定义一个新的字段类型(FieldType),例如命名为`pinyin_type`,并设置`analyzer`属性来指定使用`HanspellAnalyzer`。 ```xml <fieldType name="pinyin_type" class="solr.TextField" ...

    C#使用反射机制获取类信息

    反射是.NET框架提供的一种强大工具,它允许程序在运行时动态地获取类型的信息并进行操作。这些信息包括类型名称、方法、属性等。此外,反射还支持动态创建和调用对象的方法或属性。在很多场景下,如开发框架、插件...

    NFC标签读取和写入数据demo,亲测可用

    开发NFC应用时,可能需要用到如Android Studio这样的集成开发环境,以及相关的调试工具,如Logcat来查看运行日志,帮助定位问题。 10. **NFC安全考虑**: 虽然NFC提供了方便的数据交换方式,但也有安全隐患,如...

    2021-2022计算机二级等级考试试题及答案No.16697.docx

    2. **数据库表设计**:创建数据库表时,必须设置的字段包括字段名称(Field Name)和字段类型(Field Type),而说明(Description)是可以省略的,字段属性(Field Properties)通常包含必填、默认值等,也可以根据...

    常用的sql语句

    - `CREATE TABLE`语句用于创建新的表结构,你可以指定列名和数据类型。 - 基于已有表创建新表,可以用`CREATE TABLE tab_new LIKE tab_old`或`CREATE TABLE tab_new AS SELECT ... FROM tab_old`。 5. **删除表**...

    solr-zookeeper-tomcat集群搭建

    Solr-Zookeeper-Tomcat集群搭建教程 ...2. 在schema.xml中定义一个字段类型(FieldType),如`<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">`,并指定分词器为`...

    learn-reflection:Go夜读讲解Reflect原始码及应用分析所用到的例子

    在编程领域,反射(Reflection)是一种强大的特性,它允许程序在运行时检查自身,并操作其内部结构,如类型、变量和方法。Go语言中的反射功能主要由`reflect`包提供,这个`learn-reflection:Go夜读讲解Reflect原始码...

    Java中解析dex文件

    3. **Type ID Section**:包含了类名、接口名、数组类型和其他类型定义的ID。 4. **Proto ID Section**:定义了函数原型,包括返回类型和参数类型。 5. **Field ID Section**:每个字段都有一个唯一的ID,由所属类...

    Jira工作流项目设置操作指南

    在开始创建一个Jira工作流项目之前,需要了解几个重要的概念,包括Scheme、Issue Type Scheme、Notification Scheme、Permission Scheme、Issue Security Scheme、Field Configuration Scheme、Screen Scheme、...

    ireport 几个小知识总结

    这些知识点涵盖了Ireport在处理中文字符、字段显示、动态SQL、条件打印以及报表输出到打印机等方面的基础操作,是进行报表设计和开发时经常会用到的技术点。掌握这些技巧,能帮助开发者更高效地利用Ireport创建和...

    mysql语言总结

    - **说明**: 此命令用于创建一个新的数据库。 - **示例**: `CREATE DATABASE myDatabase;` **2. 删除数据库** - **命令格式**: `DROP DATABASE dbname;` - **说明**: 该命令用于删除指定的数据库。 - **示例**: `...

    demo_python读取shapefile文件_

    在Python编程环境中,处理地理信息系统(GIS)数据时,经常需要用到`shapefile`库,它是一个用于读写ESRI Shapefile格式的Python模块。标题"demo_python读取shapefile文件_"表明我们将探讨如何使用Python来读取...

    容生网络科技ASP文件上传管理系统

    例如,`("uploadField") %>`,其中"uploadField"是<input type="file">标签的name属性。 4. **文件保存**:在服务器端,我们需要指定一个路径来保存上传的文件,这通常涉及到File对象和SaveAs方法。例如,`Dim file...

    织梦的一个列表嵌套循环读取

    在构建企业网站时,特别是涉及到产品展示部分,通常需要对产品进行分类并按层级展示,这就需要用到导航嵌套和列表循环读取的技术。 首先,我们需要了解织梦的标签系统。织梦提供了丰富的标签供用户在模板中调用数据...

    跟益达学Solr5之使用MMSeg4J分词器

    3. **创建字段类型**:在schema.xml文件中,为需要用到MMSeg4J分词器的字段定义一个新类型,如下所示: ```xml <fieldType name="text_mms4j" class="solr.TextField" positionIncrementGap="100"> </...

    保存到数据库程序(VB6.0代码编写)

    创建`ADODB.Parameter`对象,设置参数类型和值,然后添加到`Command`对象的`Parameters`集合中。 ```vb Dim param1 As New ADODB.Parameter param1.Type = adVarChar param1.Value = userInput1 cmd....

Global site tag (gtag.js) - Google Analytics