我刚刚进入lucene世界,试图理解在lucene 6.2.1中使用ConstantScoreRange查询及其替代方法。
在Google上搜索后,我发现不推荐使用ConstantScoreRange,我应该从此链接转到NumericRangeQuery
或TermRangeQuery
:https://lucene.apache.org/core/2_9_4/api/core/deprecated-list.html
我目前正在使用Lucene 6.2.1库并尝试更改此代码段:
public Query toQuery() {
return new ConstantScoreRangeQuery(getName(), lowValue, highValue, true, true);
}
采用适合lucene 6.2.1的格式
根据我的理解,要求是使用NumericRangeQuery
,因为传递给ConstantScoreRangeQuery
的数据是数字而非条款。
由于NumericRangeQuery
API在Lucene 6.2.1中也已弃用,我不确定哪个API是正确使用的。
请帮我解决这个问题。
谢谢, 阿布舍克
答案 0 :(得分:0)
自6.0起,旧的数字类型已弃用并重命名(例如LegacyIntField),应替换为PointValues,以提供更好的整体效果。
例如,要将它用作整数值,您可以像这样索引:
int myIntValue = 10;
document.add(new IntPoint("myIntField", myIntValue));
并查询它:
Query query = IntPoint.newRangeQuery("myIntField", 5, 15);