Я использую WhitespaceAnalyzer
в качестве анализатора запросов. Если у меня есть 2 документа:Как оценка Луцены зависит от относительного положения запроса?
| text | a b c |
| text | b a c |
text
является полем.
Теперь структура индекса что-то вроде этого:
|Term| in document |
| a | a b c/b a c|
| b | a b c/b a c|
| c | a b c/b a c|
И у меня есть запрос:
| text | a b c |
Как я могу получить более высокий балл за a b c
и более низкий для b a c
.
Поддерживает ли Lucene расчетный балл в зависимости от относительное положение?
я обнаружил, что я нашел, что это помогло бы:
PhraseQuery phraseQuery = new PhraseQuery();
phraseQuery.setSlop(1);
Таким образом, они получили бы разные баллы.
Смотреть еще: http://www.blogjava.net/tangzurui/archive/2008/09/22/230357.html
And here I come across another question:
https://stackoverflow.com/questions/18394532/how-can-lucenes-scoring-depend-on-terms-relative-position-in-the-document
Спасибо, что ответили. Боюсь, что я не дал понять. Я имею в виду, в случае, когда я сказал, что оценка будет одинаковой для обоих случаев. Мне просто интересно, как сделать окончательный результат в зависимости от относительной позиции. После того, как анализатор обработал вход, заразите, мы получим одну и ту же структуру в индексе для обоих случаев. – luoluo
Итак, вам нужно взглянуть на анализатор, который хранит позицию. Я буду обновлять ответ – Mysterion
Я думаю, что termVector в основном предназначен для выделения. Я нашел лучшее решение, как я сказал выше. Спасибо. – luoluo