首页 > 代码库 > 【Lucene4.8教程之二】域(Field)的用法

【Lucene4.8教程之二】域(Field)的用法


1、在Lucene4.x前,使用以下方式创建一个Field:
Field field = new Field("filename", f.getName(),  Field.Store.YES, Field.Index.NOT_ANALYZED);
Field field = new Field("contents", new FileReader(f));
Field field = new Field("fullpath", f.getCanonicalPath(), Field.Store.YES, Field.Index.NOT_ANALYZED)
Filed的四个参数分别代表:
(1)域的名称
(2)域的值
(3)是否保存
(4)是否分析,对于文件名称,url,文件路径等内容,不需要对其进行分析。

2、在Lucene4后,定义了大量的Field的实现类型,根据需要,直接使用其中一个,不再使用笼统的Field来直接创建域。
Direct Known Subclasses:
BinaryDocValuesField, DoubleField, FloatField, IntField, LongField, NumericDocValuesField, SortedDocValuesField, SortedSetDocValuesField, StoredField, StringField, TextField

例如,对于上述三个Filed,可相应的改为:
Field field = new StringField("path", filetoIndex.getPath(),Field.Store.YES);
Field field = new LongField("modified", filetoIndex.lastModified(),Field.Store.NO);
Field field = new TextField("contents", new FileReader(filetoIndex));