Используя API Lucene, могу ли я повысить условия? - PullRequest
3 голосов
/ 01 декабря 2011

С помощью синтаксического анализатора запросов Lucene можно повысить термины (в результате чего их вес будет выше в результатах поиска), добавив «^ n», например, «apple ^ 5 pie» придаст термину «яблоко» в пять раз больше значения.,Возможно ли это сделать при построении запроса с использованием API?Обратите внимание, что я не хочу увеличивать поля или документы, но отдельные термины в поле.

1 Ответ

11 голосов
/ 01 декабря 2011

Вам просто нужно использовать метод setBoost(float) класса Query.

Например,

TermQuery tq1 = new TermQuery(new Term("text", "term1"));
tq1.setBoost(5f);
TermQuery tq2 = new TermQuery(new Term("text", "term2"));
tq2.setBoost(0.8f);
BooleanQuery query = new BooleanQuery();
query.add(tq1, Occur.SHOULD);
query.add(tq2, Occur.SHOULD);

Это эквивалентно разбору запроса text:term1^5 text:term2^0.8.

...