Поиск более коротких проиндексированных текстов с помощью длинной фразы запроса с Lucene? - PullRequest
0 голосов
/ 07 декабря 2011

Я использую Lucene в качестве наилучшего совпадения для сопоставления пользовательского ввода с длинным списком предыдущих входов для категоризации - и пока это прекрасно работает в большинстве случаев.

Проблемный пример:

Индекс:

  • Ford
  • Mercedes
  • Honda
  • Мне очень нравится Toyota

Ввод:

  • ford (точное совпадение: отлично работает)
  • toyota (частичное совпадение в более длинной записи индекса: отлично работает)
  • я имел обыкновение иметь Mercedesно теперь я этого не делаю (более длинный текст с коротким точным соответствием содержал: обычно дает либо длинное, совершенно не связанное - нечеткое - совпадение - или ничего)

Я думаю, что я ищу, находитсамая длинная общая подпоследовательность в том случае, если это не один из первых двух случаев - но опять же, я относительно новичок в Lucene, так что, возможно, я просто не знаю достаточного количества поисковых запросов, чтобы объяснить это должным образом.

1 Ответ

1 голос
/ 07 декабря 2011

Вам может понадобиться сходство по n-грамму

см. NGramDistance класс

Редактировать ссылка на Википедию http://en.wikipedia.org/wiki/Approximate_string_matching

...