2017-02-01 4 views
0

Я только что вышел в мир люцен и попытался понять использование запроса ConstantScoreRange и его альтернативы в lucene 6.2.1.ConstantScoreRangeQuery устарел

После прибегая к помощи я обнаружил, что 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 как бея данных ng, переданные в ConstantScoreRangeQuery, были числовыми, а не терминами.

С NumericRangeQuery API также устарел в Lucene 6.2.1 Я не уверен, какой правильный API использовать.

Пожалуйста, помогите мне в этом.

Спасибо, Абхишек

ответ

0

В 6.0, старые числовые типы устарели и переименованы (LegacyIntField, например), и должны быть заменены PointValues, которые предлагают более высокую производительность в целом.

Чтобы использовать его для целого значения, например, вы бы индекс, как это:

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

И запросить его:

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