如何在lucene中索引日期字段

时间:2010-12-02 09:14:52

标签: java date lucene

我是lucene的新手。我必须索引日期字段。 我正在使用lucene 3.0.0中的IndexWriter构造函数。

IndexWriter writer = new IndexWriter(FSDirectory.open(indexDir), new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED)

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

1 个答案:

答案 0 :(得分:13)

您可以这种方式存储日期字段..

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

<强>更新

Field.Index NOT_ANALYZED

  

不使用索引字段的值   分析器,因此可以搜索。如   没有使用分析器的值   存储为单个术语。这是   对于像产品这样的独特ID很有用   号。

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