Field没了Keyword、UnIndexed、UnStored、Text这几个静态成员,只能用
Field(String, String, Store, Index)。
Keyword对应Field.Store.YES, Field.Index.UN_TOKENIZED,
UnIndexed 对应Field.Store.YES, Field.Index.NO,
UnStored对应Field.Store.NO, Field.Index.TOKENIZED,
Text对应Field.Store.YES, Field.Index.TOKENIZED。
FSDirectory.getDirectory的有两个参数的变成了depresed 了。现在要用只有一个参数的。
BooleanQuery的add方法也变了。原来是用两个boolean值组合的,现在 使用BooleanClause.Occur的几个静态成员了。
暂时就发现这点差异。[引自:http://syre.blogbus.com/logs/4736803.html]
(说法二)Field类一共有5种构造函数:
Field(String name, byte[] value, Field.Store store) Create a stored field with binary value. |
Field(String name, Reader reader) Create a tokenized and indexed field that is not stored. |
Field(String name, Reader reader, Field.TermVector termVector) Create a tokenized and indexed field that is not stored, optionally with storing term vectors. |
Field(String name, String value, Field.Store store, Field.Index index) Create a field by specifying its name, value and how it will be saved in the index. |
Field(String name, String value, Field.Store store, Field.Index index, Field.TermVector termVector) Create a field by specifying its name, value and how it will be saved in the index. |
其中:
Field.Store 表示“是否存储”,即该Field内的信息是否要被原封不动的保存在索引中。
Field.Index 表示“是否索引”,即在这个Field中的数据是否在将来检索时需要被用户检索到,一个“不索引”的Field通常仅是提供辅助信息储存的功能。
Field.TermVector 表示“是否切词”,即在这个Field中的数据是否需要被切词。
通常,参数用Reader,表示在文本流数据源中获取数据,数据量一般会比较大。像链接地址URL、文件系统路径信息、时间日期、人名、居民身份证、电话号码等等通常将被索引并且完整的存储在索引中,但一般不需要切分词,通常用上面的第四个构造函数,第三四个参数分别为Field.Store.YES, Field.Index.YES。而长文本通常可用第3个构造函数。引用[http://blog.csdn.net/colasnail/archive/2007/03/21/1536417.aspx]
(说法三)
1. 2.0以前的版本
UnIndexed: Field的值将被保存到索引文件,不为Field的值建立索引,因此不能通过该Field搜索文档。 UnStored: Field的值不被保存到索引文件,将Field的值分词后建立索引
Text: Field的值分词后建立索引。如果参数为String值将被保存,为Reader值不被保存
2. 2.0版本
用几个内部类的组合来区分Field的具体类型。
Store
COMPRESS:压缩保存。用于长文本或二进制数据
YES:保存
NO:不保存
Index
NO:不建索引
TOKENIZED:分词,建索引
UN_TOKENIZED:不分词,建索引
NO_NORMS:不分词,建索引。但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储空间
TermVector
NO:不保存term vectors
YES:保存term vectors。
WITH_POSITIONS:保存term vectors。(保存值和token位置信息)
WITH_OFFSETS:保存term vectors。(保存值和Token的offset)WITH_POSITIONS_OFFSETS:保存term vectors。(保存值和token位置信息和Token的offset)
(说法四)
关于 Field , <?xml:namespace prefix = st1 /><chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span style="FONT-SIZE: 10pt">2.0.0</span> </chsdate>版本和 1.4.3 版本方法相比改动比较大,具体见下表
<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False"><span style="FONT-SIZE: 10pt">1.4.3</span> </chsdate>版本中的下面方法都被 Field(String name, String value, Store store, Index index, TermVector termVector) 取代
Keyword(String name, String value) // only version <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.4.3</chsdate>
存储、索引、不分词,用于 URI (比如 MSN 聊天记录的日期域、比如 MP3 文件的文件全路径等等)
Field(String name, String value, Field.Store.YES, Field.Index.UN_TOKENIZED) // version 2.0.0
UnIndexed(String name, String value) // only version <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.4.3</chsdate>
存储、不索引、不分词,比如文件的全路径
Field(String name, String value,Field.Store.YES, Field.Index.NO)// version 2.0.0
UnStored(String name, String value) // only version <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.4.3</chsdate>
不存储、索引、分词,比如 HTML 的正文、 Word 的内容等等,这部分内容是要被索引的,但是由于具体内容通常很大,没有必要再进行存储,可以到时候根据 URI 再来挖取。所以,这部分只分词、索引,而不存储。
Field(String name, String value,Field.Store.YES, Field.Index.TOKENIZED)// version 2.0.0
Text(String name, String value) // only version <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.4.3</chsdate>
存储、索引、分词,比如文件的各种属性,比如 MP3 文件的歌手、专辑等等。 Field.Store.YES, Field(String name, String value,Field.Index.TOKENIZED)// version 2.0.0
Text(String name, Reader value) // only version <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False">1.4.3</chsdate>
Field(String name, Reader reader) // version <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False">2.0.0</chsdate>
不存储、索引、分词。
(说法五)
1. 2.0 以前的版本
Keyword: Field 的值将被保存到索引文件,为Field的值建立索引,建立索引时不需要分词。
UnIndexed: Field 的值将被保存到索引文件,不为Field的值建立索引,因此不能通过该Field搜索文档。
UnStored: Field 的值不被保存到索引文件,将Field的值分词后建立索引
Text: Field 的值分词后建立索引。如果参数为String值将被保存,为Reader值不被保存
2. 2.0 版本
用几个内部类的组合来区分Field的具体类型。
Store
² COMPRESS: 压缩保存。用于长文本或二进制数据
² YES :保存
² NO :不保存
Index
² NO :不 建索引
² TOKENIZED :分词, 建索引
² UN_TOKENIZED :不分词, 建索引
² NO_NORMS :不分词, 建索引。但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储空间
TermVector
² NO : 不保存term vectors
² YES : 保存term vectors。
² WITH_POSITIONS : 保存term vectors。(保存值和token位置信息)
² WITH_OFFSETS : 保存term vectors。(保存值和Token的offset)WITH_POSITIONS_OFFSETS:保存term vectors。(保存值和token位置信息和Token的offset)
(说法六)
* Field.Index有四个属性,分别是:
Field.Index.TOKENIZED:分词索引
Field.Index.UN_TOKENIZED:分词进行索引,如作者名,日期等,Rod Johnson本身为一单词,不再需要分词。
Field.Index:不进行索引,存放不能被搜索的内容如文档的一些附加属性如文档类型, URL等。
Field.Index.NO_NORMS:;
Field.Store也有三个属性,分别是:
Field.Store.YES:索引文件本来只存储索引数据, 此设计将原文内容直接也存储在索引文件中,如文档的标题。
Field.Store.NO:原文不存储在索引文件中,搜索结果命中后,再根据其他附加属性如文件的Path,数据库的主键等,重新连接打开原文,适合原文内容较大的情况。
Field.Store.COMPRESS 压缩存储;
termVector是Lucene 1.4.3新增的它提供一种向量机制来进行模糊查询,很少用。
tags:lucene lucene.net dotlucene field类 Field.store Field.UnStored Field.Keyword Field.Text Field.Index Field.TermVector
转自:http://hi.baidu.com/gw_noah/blog/item/0646fbc4c3418daa8226ac0c.html
相关推荐
SELECT field1,field2 WHERE +field1:value This command will display two fields in a grid on the command screen. UPDATE field1=newvalue WHERE +field2:value This command will change the value of ...
* Apache Lucene全文检索和IKAnalyzer分词工具类 * <p>Company: 91注册码 * time:2014-04-22 * @author www.91zcm.com * @date * @version 1.1 */ public class LuceneUtil { /**索引创建的路径**/ ...
2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 3.MUST_NOT和MUST_NOT:无意义,检索无结果。 4.SHOULD与MUST、SHOULD与MUST_NOT: SHOULD与MUST连用时,无意义,结果为MUST子句...
Lucene Query Tool (lqt) 是一个命令行工具用来执行 Lucene 查询并对结果进行格式化输出。 使用方法: $ ./lqt usage: LuceneQueryTool [options] --analyzer <arg> for query, (KeywordAnalyzer | ...
Lucene一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎
doc.add(new Field("path", src.getCanonicalPath(), Field.Store.YES, Field.Index.NOT_ANALYZED)); StringBuilder sb = new StringBuilder(); BufferedReader br = new BufferedReader(new FileReader(src)...
分词效率: 第一次分词需要1-2秒(读取词典),之后速度基本与Lucene自带分词持平 运行环境: Lucene 1.9+ 内存消耗: 30M+ 1.4.0 —— 2006-08-21 增加词典的动态扩展能力 1.3.3 —— 2006-07...
a) 构造方法: Field(String name, String value, Field.Store.YES, Field.Index.ANALYZED) name: 域的名称, 只能是字符串. value: 域的值, 只能是字符串. Field.Store: 指定Field的值是否存储或怎样存储. NO(不...
1> lucene学习笔记 2> 全文检索的实现机制 【1】lucene学习笔记的目录如下 1. 概述 3 2. lucene 的包结构 3 3. 索引文件格式 3 4. lucene中主要的类 4 4.1. Document文档类 4 4.1.1. 常用方法 4 4.1.2. 示例 4 4.2...
此博文是对近期做lucene索引的总结, (lucene,solr,netty,hadoop),如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,希望大家关注呦
2 lucene的工作方式 lucene提供的服务实际包含两部分:一入一出。所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删除;所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词...
2.把IKAnalyzer.cfg.xml 和 stopword.dic添加到classes目录 3.把IKAnalyzer2012FF_u1.jar添加到/opt/cloudera/parcels/CDH/lib/solr/webapps/solr/WEB-INF/lib目录 4.修改 /opt/cdhsolr/fuser/conf/schema.xml...
Lucene创建索引步骤: 1、创建Directory(索引位置) 2、创建IndexWrite(写入索引) 3、创建Document对象 4、为Document添加Field(相当于添加属性:类似于表与字段的关系) 5、通过IndexWriter添加文档到索引中
1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) 2.1.4. 注册角色(Role) 2.1.5. 定义访问...
Lucene笔记中包含了 什么是lucene 应用领域 创建索引 使用luke查看索引 搜索索引 Field域的详细介绍 各种类型的搜索 使用中文分词器
解析,修改和字符串化Lucene查询。 | | 安装 npm install --save lucene -or- yarn add lucene 用法 const lucene = require ( 'lucene' ) ; const ast = lucene . parse ( 'name:frank OR job:engineer' ) ; ...
2)org.apache.1uceene.document索引存储时的文档结构管理,类似于关系型数据库的表结构。 3)document包相对而言比较简单,该包下面有3个类,document相对于关系型数据库的记录对象,Field主要负责字段的管理。 4)...
In chapter 1, you meet Lucene. We introduce some basic informationretrieval terminology, and we note Lucene’s primary competition. Without wasting any time, we immediately build simple indexing and ...
2.把IKAnalyzer.cfg.xml 和 stopword.dic添加到classes目录 3.把IKAnalyzer2012FF_u1.jar添加到/opt/cloudera/parcels/CDH/lib/solr/webapps/solr/WEB-INF/lib目录 4.修改 /opt/cdhsolr/fuser/conf/schema.xml...