2010-01-28 2 views
1

Как создать индекс, а затем выполнить поиск, как в SQL Server FTS?Lucene.NET как искать формы слов? (как в SQL Server)

I.e. данных индексируется один раз, а затем пользователь может искать:

  1. точное соответствие: «яблоко», «обезьяна», «пьяный» и т.д ...
  2. формы слов:
    • введите «пьяный» и найти «пить», «пила», «пьяный»
    • введите «яблоки» и найти «яблоки», «яблоко»
  3. контекст: «приложение *» и найти «яблоко», «приложение» и т.д.

Возможно ли это?

спасибо!

ответ

0

Посмотрите на Java documentation для синтаксиса Lucene's QueryParser, чтобы получить представление о том, что возможно. Это более или менее то же, что и версия .NET.

Lucene делает поддержку вытекающей которая будет соответствовать яблокам и яблоко, и т.д.

Я не использовал полнотекстовой поиск в SQL Server в течение длительного времени, но я абсолютно уверен, что Lucene.NET превзойдет его ,

+0

спасибо, но какой анализатор я должен использовать для индексации документов в этом случае? Кажется, что PorterStemmer может расколоть гниения слов, но он не знает нерегулярных форм слов, таких как пить, пьян, пить и т. Д. – Oleg

+0

Попробуйте SnowballAnalyzer? –

Смежные вопросы