原创

lucene域的各种类型

是否分词:

         分词的作用是为了索引

         需要分词: 文件名称, 文件内容

         不需要分词: 不需要索引的域不需要分词,还有就是分词后无意义的域不需要分词

                          比如: id, 身份证号


是否索引:

         索引的的目的是为了搜索.

         需要搜索的域就一定要创建索引,只有创建了索引才能被搜索出来

         不需要搜索的域可以不创建索引

         需要索引: 文件名称, 文件内容, id, 身份证号等

         不需要索引: 比如图片地址不需要创建索引, e:\\xxx.jpg

                   因为根据图片地址搜索无意义


是否存储:

         存储的目的是为了显示.

         是否存储看个人需要,存储就是将内容放入Document文档对象中保存出来,会额外占用磁盘空间, 如果搜索的时候需要马上显示出来可以放入document中也就是要存储,这样查询显示速度快, 如果不是马上立刻需要显示出来,则不需要存储,因为额外占用磁盘空间不划算.


Field类

数据类型

Analyzed

是否分析

Indexed

是否索引

Stored

是否存储

说明

StringField(FieldName, FieldValue,Store.YES))

字符串

N

Y

YN

这个Field用来构建一个字符串Field,但是不会进行分析,会将整个串存储在索引中,比如(订单号,姓名等)

是否存储在文档中用Store.YES或Store.NO决定

LongField(FieldName, FieldValue,Store.YES)

Long

Y

Y

YN

这个Field用来构建一个Long数字型Field,进行分析和索引,比如(价格)

是否存储在文档中用Store.YES或Store.NO决定

StoredField(FieldName, FieldValue)

重载方法,支持多种类型

N

N

Y

这个Field用来构建不同类型Field

不分析,不索引,但要Field存储在文档中

TextField(FieldName, FieldValue, Store.NO)

TextField(FieldName, reader)


字符串

Y

Y

YN

如果是一个Reader, lucene猜测内容比较多,会采用Unstored的策略.


注意:lucene底层的算法,钱数是要分词的,因为要根据价钱进行对比

例如: 大于12.5元的小于100元的商品搜索出来



正文到此结束
本文目录