我正在重构一些旧的lucene代码,我找到了以下内容,
public class UnNormalizedLuceneSimilarity extends DefaultSimilarity {
@Override
public float lengthNorm(String fieldName, int numTerms) {
if (numTerms > 0)
return 1;
else
return 0;
}
此代码使用lucene版本< 3.0
现在,在最新版本的lucene中,lengthNorm的方法签名已更改。
lengthNorm(FieldInvertState state)
我无法从文档中了解如何使用新方法实现相同的非标准化相似性。 有人可以帮忙吗?
答案 0 :(得分:1)
FieldInvertState
的方法为getLength()。从它的外观来看,这种方法就是你所需要的。
return state.getLength() > 0? 1 : 0;