Поиск Lucene - оценка выше, если слово или аналогичные находятся в поле - PullRequest
1 голос
/ 20 августа 2010

Мне нужно знать, когда слово или слова находятся внутри поля в моем индексе, и иметь этот документ с большей оценкой.

Моя проблема в том, что, если я ищу "Sherton Hotel", я получаю лучшие результаты

  1. Petit Hotel
  2. Crzy корова
  3. Simmonss

И я бы хотел, чтобы у этих были лучшие результаты

  1. Отель Мауи Шератон возле Луны
  2. Фантастический отель, похожий на Шератон

Я хочу, чтобы, если слова, которые я ищу или похожие, были внутри, то в этом случае в поле hotelName они имеют больший балл .. помимо длины текста поля.

Я предполагаю, что для Lucene, «Seraton Hotel» имеет больше сходства с «Crazy Cow», чем с «Фантастическим отелем, похожим на Sheraton».

1 Ответ

1 голос
/ 25 августа 2010

TermQuery ищет точные совпадения, FuzzyQuery делает вещи немного иначе.Не зная, что такое hotelNameToSearch и hotel.getName().toLowerCase, я не могу точно сказать, что происходит, но почему вы не используете встроенный queryParser?Просто добавьте тильду (~) с числовым значением для обозначения нечеткого запроса?

...