加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在lucene中索引日期字段

发布时间:2020-12-14 19:27:52 所属栏目:Java 来源:网络整理
导读:我是lucene的新手.我必须索引日期字段. 我在lucene 3.0.0中使用以下IndexWriter构造函数. IndexWriter writer = new IndexWriter(FSDirectory.open(indexDir),new WhitespaceAnalyzer(),true,IndexWriter.MaxFieldLength.UNLIMITED) 我的观点是: 为什么在没
我是lucene的新手.我必须索引日期字段.
我在lucene 3.0.0中使用以下IndexWriter构造函数.
IndexWriter writer = new IndexWriter(FSDirectory.open(indexDir),new WhitespaceAnalyzer(),true,IndexWriter.MaxFieldLength.UNLIMITED)

我的观点是:
为什么在没有分析日期字段时需要分析器,而索引我使用了Field.Index.NOT_ANALYZED.

解决方法

您可以以这种方式存储日期字段.
Document doc = new Document();
doc.add(new Field("modified",DateTools.timeToString(f.lastModified(),DateTools.Resolution.MINUTE),Field.Store.YES,Field.Index.NOT_ANALYZED));

其中f是文件对象…

现在使用上面的文档作为索引编写者……

结帐示例代码附带lucene …以及以下链接…
http://lucene.apache.org/java/2_2_0/api/org/apache/lucene/document/DateTools.html

UPDATE

Field.Index NOT_ANALYZED

Index the field’s value without using
an Analyzer,so it can be searched. As
no analyzer is used the value will be
stored as a single term. This is
useful for unique Ids like product
numbers.

根据lucene javadoc,您不需要使用Field.Index NOT_ANALYZED对字段进行分析,但我认为,根据设计,IndexWriter期望分析器将数据的精确副本编入索引,这在存储和搜索方面效率不高.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读