Лучшая практика Lucene.Net - PullRequest
34 голосов
/ 16 июня 2009

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

Ответы [ 6 ]

18 голосов
/ 16 июня 2009

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

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

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

9 голосов
/ 16 июня 2009

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

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

3 голосов
/ 16 июня 2009

Есть хорошая статья, объясняющая реализацию Lucene.NET: http://www.ifdefined.com/blog/post/2009/02/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx

1 голос
/ 24 февраля 2010

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

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

1 голос
/ 24 июля 2009

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

1 голос
/ 17 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...