Подтвердить что ты не робот

Лучшие рекомендации Lucene.Net

Каковы наилучшие методы использования Lucene.Net? или где я могу найти хороший пример использования lucene.net?

4b9b3361

Ответ 1

Если вы собираетесь работать с Lucene, я бы купил хорошую книгу, которая покрывает ее от A до Z. У Lucene очень крутая кривая обучения (на мой взгляд). Это не только знание того, как искать ваше, что важно - это также об индексировании. Выполнение базового поиска легко, но создание индекса, который состоит из миллионов записей данных и все еще в состоянии сделать быстрый поиск молнии, возможен, но довольно сложно. Нет учебника, в котором вы узнаете об этом.

Я бы рекомендовал Lucene in Action, Second Edition от Майкла МакКандлесса, Эрика Хэтчера и Отиса Господнича. Хотя это написано для Lucene, а не Lucene.NET, это не должно быть проблемой, поскольку терминология и api в основном одинаковы.

Однако, если вы просто быстро попробуете, вы можете прочитать этот сайт. Название говорит все: -)

Ответ 2

Мы часто используем Lucene.NET, когда данные огромны, и для чтения требуется очень быстрое время отклика. Обычно мы используем данные в том, что нам нужно искать, а также ключ, чтобы мы могли отображать наши результаты обратно в таблицу базы данных, в которой есть остальные сведения. Это позволяет нам искать пользователя (в нашем случае) для проверки их участия в прошлом. Это не просто поиск по имени пользователя, но и поиск, который выполняет итерацию по различным деталям, пытаясь найти, есть ли другие экземпляры этого пользователя (хотя и в другой форме). Например, мы ищем идентификатор пользователей (из одной системы), их идентификатор из другой системы, возможно, идентификатор из системы поставщиков, GUID флэш-cookie, GUID файлов cookie сайтов и т.д. И поскольку мы находим один идентификатор, мы ищите другие экземпляры этого идентификатора для других экземпляров пользователей. Это позволяет нам выводить запись пользователей в одну из многих систем (так как их участие в любой системе разрешается только один раз в сутки). В SQL этот алогритм (который я расплывчато обсуждал) бы навсегда! В Lucene.NET это занимает меньше секунды. Lucene имеет гораздо больше возможностей поиска, чем SQL Server. Дело в том, что он засасывает, пишет или обновляет ваш индекс. Обычно это делается как работа... все сразу. Однако, если вам нужно писать в индекс, обновляя его в режиме реального времени, вам нужно написать какой-нибудь умный код, чтобы убедиться, что он написан заблокированным способом (подумайте о очередности с singleton), или ваш код будет перекрываться и взорваться!

Я рассказываю об использовании Lucene.NET в моей книге (ASP.NET Social Networking), и вы можете найти много помощи здесь.

Ответ 4

Проблема с Lucene.NET заключается в том, что у нее нет активного сообщества, такого как стандартная (java) Lucene, поэтому он похож на всегда эффективную работу старой версии Lucene. Хотя мы предпочитаем .NET, мы решили использовать Java-версию Lucene по этой причине. Если вы также используете Solr, его очень легко интегрировать.

Ответ 5

"Lucene in Action" - лучшая книга, чтобы узнать, как индексировать и как искать. Он даже охватывает расширенные методы поиска и записи пользовательских анализаторов. Несмотря на то, что книга предназначена для Java... Я использовал поиск и индексирование в .net с помощью этой книги.

Ответ 6

У Симона Грина есть хорошая серия из трех частей о том, как он создал Lucene.Net для работы со своей реализацией NHibernate. Часть первая представляет серию. Часть вторая и часть третья обсуждают технические детали.

Я нашел образцы кода Lucene.Net очень полезными, хотя мой проект не использует NHibernate.