Lucene - 索引字段中多次出现的标记时的预期行为
Lucene - Expected behavior when indexing multiple occurrences of a token within a field
假设我正在索引一个字符串值 "useridA;useridB,userdidC,useridA,useridA"
该字段设置为 ANALYZED 并使用自定义 CharTokenizer 查找边界逗号字符。
索引中的预期行为是什么,因为标记 "useridA" 在同一字段中出现多次?
它是否会重新索引相同的值并保留相同的 space 就好像它只会出现一次一样?
在基本层面上,lucene 是一个 "inverted term index" 它存储 term->docID。因此,如果一个术语出现多次,它只会被记录一次。
显然这是一个巨大的简化。位置信息也将根据添加字段时使用的 TermVector 值存储(您将需要它来使用短语和斜率查询)。
仅根据您的用例,我建议您在索引时对列表进行重复数据删除,或者只对 class 的 属性 使用 HashSet。
假设我正在索引一个字符串值 "useridA;useridB,userdidC,useridA,useridA"
该字段设置为 ANALYZED 并使用自定义 CharTokenizer 查找边界逗号字符。 索引中的预期行为是什么,因为标记 "useridA" 在同一字段中出现多次?
它是否会重新索引相同的值并保留相同的 space 就好像它只会出现一次一样?
在基本层面上,lucene 是一个 "inverted term index" 它存储 term->docID。因此,如果一个术语出现多次,它只会被记录一次。
显然这是一个巨大的简化。位置信息也将根据添加字段时使用的 TermVector 值存储(您将需要它来使用短语和斜率查询)。
仅根据您的用例,我建议您在索引时对列表进行重复数据删除,或者只对 class 的 属性 使用 HashSet