Java 在使用Lucene索引时,有没有处理重复的好方法?

Java 在使用Lucene索引时,有没有处理重复的好方法?,java,indexing,lucene,Java,Indexing,Lucene,我正在使用Lucene为我的文档编制索引。在我的例子中,每个文档都很小,但数量很大(~2GB)。在每个文档中,都有许多重复的单词或术语。我想知道这是否是我使用Lucene进行索引的正确方法,或者在索引之前应该对文档进行哪些预处理 以下是我的文档的几个示例(每列是一个字段,第一行是字段名,从第二行开始,每行是一个文档): 我想索引所有文档,在3个字段(类别、曲目和关键字)上执行搜索,并返回唯一的id1 如果我直接对此进行索引,重复的术语会影响搜索性能吗?你知道我应该如何做索引和搜索吗?非常感谢你的

我正在使用Lucene为我的文档编制索引。在我的例子中,每个文档都很小,但数量很大(~2GB)。在每个文档中,都有许多重复的单词或术语。我想知道这是否是我使用Lucene进行索引的正确方法,或者在索引之前应该对文档进行哪些预处理

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

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


如果我直接对此进行索引,重复的术语会影响搜索性能吗?你知道我应该如何做索引和搜索吗?非常感谢你的帮助。评分器可能会影响搜索的性能,迫使评分者考虑一大堆文档。如果您的术语在文档之间没有什么区别,我建议您对文档进行预处理以删除这些术语。但是,您可能希望从索引所有内容开始(比如10000-20000个文档样本),看看您在相关性和性能方面的表现如何


从您描述这一点的方式来看,您需要为类别、曲目和关键字字段编制索引,可能需要为类别和曲目字段使用关键字分析器。您只需要存储id字段。您可能需要为关键字字段使用自定义分析器,或者在实际索引之前对其进行预处理。

+1首先尝试索引所有内容,然后再进行优化。2GB的数据量不多,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