Передовой опыт Lucene.Net

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


person Elias Haileselassie    schedule 16.06.2009    source источник


Ответы (5)


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

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

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

person Razzie    schedule 16.06.2009
comment
Мне пришлось просмотреть книгу Lucene в действии, и я должен согласиться, что это хороший единственный том, чтобы узнать все о Lucene! Большинство теоретических концепций применимы к Lucene.NET, однако реализация кода потребует некоторого творческого мышления! - person Andrew Siemer; 16.06.2009
comment
Я вижу, что только что вышло второе издание Lucene in Action. Есть какие-нибудь мысли о том, ближе ли это к Lucene.NET, чем к первому изданию? - person Frank Schwieterman; 30.07.2010

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

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

person Andrew Siemer    schedule 16.06.2009

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

person Hugh    schedule 17.06.2009

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

person devson    schedule 24.07.2009

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

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

person dthrasher    schedule 24.02.2010