Apache Lucene раздел с документами для повышения - PullRequest
0 голосов
/ 13 мая 2018

Я работаю над проектом в Apache Lucene 7.2.1 и хочу изменить систему оценки документов, чтобы первая часть документа (первые 5 слов) была в два раза более релевантной, чем остальная часть документа.

Например:

doc1 = "один два три четыре пять шесть"

doc2 = "шесть один два три четыре пять"

query ="six"

Оценка для doc2 должна быть в два раза больше, чем оценка для doc1.

Не могли бы вы помочь мне достичь этого?Я знаю, что в старых версиях Lucene в Field был метод setBoost, но в этой версии его нет.Нужно ли повышать уровень при индексировании документа или при выполнении запроса?

Спасибо!

1 Ответ

0 голосов
/ 14 мая 2018

Повышение должно выполняться во время поиска.Вы можете достичь этого с помощью BoostQuery.

BoostQuery - это класс запросов, поэтому вы можете комбинировать его с другими типами запросов.Абстрактный пример:

BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(new BoostQuery(query1, 2f), BooleanClause.Occur.MUST);
booleanQuery.add(new BoostQuery(query2, 1f), BooleanClause.Occur.MUST);

Подробнее об общем выигрыше и повышении читайте здесь: https://lucene.apache.org/core/7_0_0/core/org/apache/lucene/search/package-summary.html#package.description

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...