Я только недавно внедрил систему автозаполнения фраз в lucene.net.
По сути, в java-версии lucene имеется фильтр shinglefilter в одной из папок contrib, который разбивает предложение на все возможные комбинации фраз.,К сожалению, фильтры вкладов lucene.nets еще не совсем созданы, поэтому у нас нет фильтра shingle.
, но индекс lucene, написанный на java, может быть прочитан lucene.net, если версиитот же самый.поэтому я сделал следующее:
создал индекс заклинаний в lucene.net, используя метод spellcheck.IndexDictionary, как изложено в разделе «ты имел в виду» ссылки Джейка Скотта.обратите внимание, что создается только орфографический индекс отдельных слов, а не фраз.
Затем я создал приложение Java, которое использует фильтр shingle для создания фраз текста, который я ищу, и сохраняет его во временном индексе.
Затем я написал другой метод в dotnet, чтобы открыть этот временный указатель и добавить каждую фразу в виде строки или документа в мой орфографический указатель, который уже содержит отдельные слова.хитрость заключается в том, чтобы убедиться, что добавляемые вами документы имеют ту же форму, что и остальные документы заклинаний, поэтому я извлек методы, использованные в коде проверки орфографии в проекте lucene.net, и отредактировал их.
как только вы это сделаете, вы можете вызвать метод spellcheck.suggests Similar и передать ему фразу с ошибкой, и она вернет вам действительное предложение.