之前一直用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易读,也可以自己封闭灵活。
分享到:
相关推荐
{"JsonType": "string", "FieldIndex": 1, "FieldType": "String", "FieldSize": 100, "FieldName": "Title", "Required": false}, {"JsonType": "variant", "FieldIndex": 2, "FieldType": "Blob", "FieldSize": ...
在创建Shapefile时,我们需要用到ArcObjects库中的几个关键类和接口: 1. **工作空间工厂类** (IWorkspaceFactory): 这是创建或打开工作空间的基础,例如ShapefileWorkspaceFactory用于创建Shapefile工作空间。不同...
在MongoDB中,查询数据时,我们可能会遇到需要根据数据类型进行筛选的情况,这时就用到了$type操作符。$type操作符允许我们基于BSON(Binary JSON)类型来查询文档中的字段,确保返回的结果符合特定的数据类型。 ...
创建和删除索引分别用到`CREATE INDEX`和`DROP INDEX`: ```sql CREATE [UNIQUE] INDEX idxname ON tabname (col….); DROP INDEX idxname; ``` 索引一旦建立,其结构不可更改,只能删除重建。 视图是基于查询结果...
1. 在`schema.xml`文件中,定义一个新的字段类型(FieldType),例如命名为`pinyin_type`,并设置`analyzer`属性来指定使用`HanspellAnalyzer`。 ```xml <fieldType name="pinyin_type" class="solr.TextField" ...
反射是.NET框架提供的一种强大工具,它允许程序在运行时动态地获取类型的信息并进行操作。这些信息包括类型名称、方法、属性等。此外,反射还支持动态创建和调用对象的方法或属性。在很多场景下,如开发框架、插件...
开发NFC应用时,可能需要用到如Android Studio这样的集成开发环境,以及相关的调试工具,如Logcat来查看运行日志,帮助定位问题。 10. **NFC安全考虑**: 虽然NFC提供了方便的数据交换方式,但也有安全隐患,如...
2. **数据库表设计**:创建数据库表时,必须设置的字段包括字段名称(Field Name)和字段类型(Field Type),而说明(Description)是可以省略的,字段属性(Field Properties)通常包含必填、默认值等,也可以根据...
- `CREATE TABLE`语句用于创建新的表结构,你可以指定列名和数据类型。 - 基于已有表创建新表,可以用`CREATE TABLE tab_new LIKE tab_old`或`CREATE TABLE tab_new AS SELECT ... FROM tab_old`。 5. **删除表**...
Solr-Zookeeper-Tomcat集群搭建教程 ...2. 在schema.xml中定义一个字段类型(FieldType),如`<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">`,并指定分词器为`...
在编程领域,反射(Reflection)是一种强大的特性,它允许程序在运行时检查自身,并操作其内部结构,如类型、变量和方法。Go语言中的反射功能主要由`reflect`包提供,这个`learn-reflection:Go夜读讲解Reflect原始码...
3. **Type ID Section**:包含了类名、接口名、数组类型和其他类型定义的ID。 4. **Proto ID Section**:定义了函数原型,包括返回类型和参数类型。 5. **Field ID Section**:每个字段都有一个唯一的ID,由所属类...
在开始创建一个Jira工作流项目之前,需要了解几个重要的概念,包括Scheme、Issue Type Scheme、Notification Scheme、Permission Scheme、Issue Security Scheme、Field Configuration Scheme、Screen Scheme、...
这些知识点涵盖了Ireport在处理中文字符、字段显示、动态SQL、条件打印以及报表输出到打印机等方面的基础操作,是进行报表设计和开发时经常会用到的技术点。掌握这些技巧,能帮助开发者更高效地利用Ireport创建和...
- **说明**: 此命令用于创建一个新的数据库。 - **示例**: `CREATE DATABASE myDatabase;` **2. 删除数据库** - **命令格式**: `DROP DATABASE dbname;` - **说明**: 该命令用于删除指定的数据库。 - **示例**: `...
在Python编程环境中,处理地理信息系统(GIS)数据时,经常需要用到`shapefile`库,它是一个用于读写ESRI Shapefile格式的Python模块。标题"demo_python读取shapefile文件_"表明我们将探讨如何使用Python来读取...
例如,`("uploadField") %>`,其中"uploadField"是<input type="file">标签的name属性。 4. **文件保存**:在服务器端,我们需要指定一个路径来保存上传的文件,这通常涉及到File对象和SaveAs方法。例如,`Dim file...
在构建企业网站时,特别是涉及到产品展示部分,通常需要对产品进行分类并按层级展示,这就需要用到导航嵌套和列表循环读取的技术。 首先,我们需要了解织梦的标签系统。织梦提供了丰富的标签供用户在模板中调用数据...
3. **创建字段类型**:在schema.xml文件中,为需要用到MMSeg4J分词器的字段定义一个新类型,如下所示: ```xml <fieldType name="text_mms4j" class="solr.TextField" positionIncrementGap="100"> </...
创建`ADODB.Parameter`对象,设置参数类型和值,然后添加到`Command`对象的`Parameters`集合中。 ```vb Dim param1 As New ADODB.Parameter param1.Type = adVarChar param1.Value = userInput1 cmd....