java - 使用 Lucene 索引时有什么处理重复的好方法吗?

标签 java indexing lucene

我正在使用 Lucene 来索引我的文档。在我的例子中,每个文件都相当小但数量很大(~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

我想索引所有文档,对 3 个字段(类别、跟踪和关键字)执行搜索并返回唯一的 id1。

如果我直接索引这个,重复的词会影响搜索性能吗?您知道我应该如何进行索引和搜索吗?非常感谢。

最佳答案

重复的术语可能会迫使评分者考虑大量文档,从而影响搜索性能。如果您有不区分文档的术语,我建议预处理文档以删除这些术语。但是,您可能希望从为所有内容编制索引(例如 10000-20000 份文档的示例)开始,然后看看您在相关性和性能方面的表现如何。

根据您描述的方式,您需要为类别、跟踪和关键字字段编制索引,可能对类别和跟踪字段使用 KeywordAnalyzer。您只需要存储 id 字段。您可能需要针对关键字字段的自定义分析器,或者在实际索引之前对其进行预处理。

关于java - 使用 Lucene 索引时有什么处理重复的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3227044/

相关文章:

java - 如何在java中正确格式化或合并两个直方图?

java - Spring Boot Gradle 插件无法与 Eclipse 一起使用

lucene - 在本地开发基于 Cloudant 的应用程序

java - Lucene 在搜索和索引的同时阻塞

java - 在lucene中搜索子字符串

java - 如何显示用于静音原生广告的谷歌表单?

java - 用java从手机读取HTTP POST

node.js - Neo4j Rest api 唯一性不起作用?

solr - 使用 Solr 索引维基百科不起作用

Python - Pandas 索引和选择