不推荐使用ConstantScoreRangeQuery

时间:2017-02-01 09:24:56

标签: lucene

我刚刚进入lucene世界,试图理解在lucene 6.2.1中使用ConstantScoreRange查询及其替代方法。

在Google上搜索后,我发现不推荐使用ConstantScoreRange,我应该从此链接转到NumericRangeQueryTermRangeQueryhttps://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是正确使用的。

请帮我解决这个问题。

谢谢, 阿布舍克

1 个答案:

答案 0 :(得分:0)

自6.0起,旧的数字类型已弃用并重命名(例如LegacyIntField),应替换为PointValues,以提供更好的整体效果。

例如,要将它用作整数值,您可以像这样索引:

int myIntValue = 10;
document.add(new IntPoint("myIntField", myIntValue));

并查询它:

Query query = IntPoint.newRangeQuery("myIntField", 5, 15);