2010-07-12 25 views
1

我正在使用Lucene索引我的文档。就我而言,每个文档都很小,但数量很大(〜2GB)。在每个文件中,都有许多重复的词语或术语。我想知道,如果这是我使用Lucene做索引的正确方法,或者在索引之前应该对文档做什么预处理。使用Lucene索引时处理重复的好方法?

以下是几个我的文档的例子(每列是一个字段,第一行是字段名,并从第二行开始,每行是一个文档):

ID  category  track  keywords 
id1 cat1   track1 mode=heat treatment;repeat=true;Note=This is an apple 
id2 cat1   track2 mode=cold treatment;repeat=true;Note=This is an orange 

我要索引所有文档,在3个字段(类别,曲目和关键字)上执行搜索并返回唯一的id1。

如果我直接索引这个,重复条件会影响搜索性能吗?你有一个好主意,我应该如何做索引和搜索?提前致谢。

回答

3

重复条款可能会通过强制记录器考虑大量文档来影响搜索性能。如果您的条款不能区分文档,我建议您预处理文档以删除这些条款。但是,您可能希望先将所有内容(例如10000-20000个文档的样本)编入索引,然后查看相关性和性能方面的表现。

从你描述的这种方式,您将需要指数的类别,跟踪和关键字字段,可能使用KeywordAnalyzer的类别和跟踪领域。你只需要存储id字段。您可能需要关键字字段的自定义分析器,或者在实际索引之前对其进行预处理。

+1

+1先尝试索引所有内容,然后再优化。 2GB不是那么多的数据,而且Lucene的速度很快 – bajafresh4life 2010-07-12 13:37:14

+0

+1和我第二次bajafresh4life的评论 – 2010-07-12 15:25:18