Поисковая система для интеграции в стек .NET - PullRequest
9 голосов
/ 29 января 2010

Я ищу очень надежную программную поисковую систему для интеграции в веб-сайт .Net.

Текущее предлагаемое решение - Lucene.NET стек, основанный на Lucene. Тем не менее, я хотел бы оценить другие поисковые системы, прежде чем решиться.

Нам нужен следующий набор функций:

  • Возможность сканировать произвольные страницы по HTTP
  • Возможность разбора файлов Sitemap
  • Возможность получения списков URI для анализа через поиск в базе данных
  • Возможность ограничить поиск определенным языком / языковым стандартом
  • Возможность ограничить поиск подмножеством страниц (например, с помощью регулярного выражения в URI)
  • Скорость и масштабируемость (для общедоступного веб-сайта с тонной трафика)
  • Должен иметь поддержку .NET API или очень простой API на основе http, который можно обернуть в .NET API
  • Поддержка полнотекстового языка в зависимости от языка

Другие вещи, которые были бы хорошими, но не нарушающие соглашения, если они не поддерживаются:

  • Отчетность
  • Сглаживание и смещение результатов
  • HTTP-страницы администрирования
  • Поддержка SQL Server

Какие другие программные поисковые системы работали для вас? Есть ли что-нибудь, что вы бы порекомендовали или нам следует избегать?

Ответы [ 7 ]

3 голосов
/ 29 января 2010

Ознакомьтесь с Microsoft Search Server Express , хотя на данный момент страница выглядит испорченной, поэтому попробуйте эту ссылку .

Существуют и другие корпоративные механизмы, такие как скорость vivisimo (очень расширяемая), автономность и т. Д. Lucene и Solr ограничены, сложны в использовании и настройке, но это то, что вы получаете, когда вам нужно что-то бесплатное .

3 голосов
/ 29 января 2010

Lucene.Net - это информационно-поисковая библиотека, а не поисковая система. В частности это не будет делать что-либо из:

  • Сканирование веб-страниц или анализ файлов сайта
  • Отчетность
  • HTTP-страницы администрирования
  • Поддержка SQL Server (Lucene.Net использует собственный простой, но очень эффективный формат файлов и не использует SQL Server)

Хотя я решительный сторонник или SQL и рекомендую его в качестве полнотекстового поискового компонента поисковой системы, вам также понадобится компонент синтаксического анализа crawler / html для создания полнофункциональной поисковой системы, и вы нам нужно будет тщательно спроектировать ваши индексы Lucene.Net, чтобы максимизировать производительность запросов, которые вы хотите (поиск по языку / языку)

Попробуйте взглянуть на проект Solr , который представляет собой полноценную поисковую систему, использующую Lucene - это может больше соответствовать вашим потребностям.

1 голос
/ 17 октября 2012

Вы также можете взглянуть на OpenSearchServer

Работает как очарование в Windows. Вы можете использовать веб-сервис SOAP для интеграции.

Существует также библиотека скелета C #, работающая с XML / REST API.

Отказ от ответственности: я являюсь генеральным директором OpenSearchServer

1 голос
/ 29 января 2010

Coveo - это поисковая система, которую мы в настоящее время устанавливаем для замены Google Mini , которая использовалась в течение ряда лет. Я просто указываю на них как на что-то, что нужно исследовать, поскольку я недостаточно использовал их, чтобы знать, насколько они хороши. Я просто знаю о головных болях у каждого, много-много головных болей.

1 голос
/ 29 января 2010

Как уже говорили другие, определенно используйте оригинальную Lucene, используя Solr. Интегрировать его с .Net очень просто. Я только недавно написал об этом в блоге: http://crazorsharp.blogspot.com/2010/01/full-text-search-using-solr-lucene-and.html

1 голос
/ 29 января 2010

Вместо того, чтобы использовать Lucene.Net напрямую, вы рассматривали возможность использования чего-то, что оборачивает его и обеспечивает больше функциональности, сродни тому, что вы ищете?

Solr - это продукт Apache, который делает это, и для него есть также .Net клиент порт . Я никогда не использовал его в производстве, но похоже, что вы ищете.

Схожая идея - Nutch (написанная парнем, который изначально писал Lucene), хотя я не знаю ни одной ее версии .Net. Nutch действительно имеет компонент паука для сканирования сайтов.

1 голос
/ 29 января 2010

Я бы рекомендовал проверить Solr . Он основан на Java, но отвечает требованиям API, основанным на HTTP, ваших требований, предназначен для работы в отдельном блоке / кластере от вашего основного приложения (поэтому вам не обязательно требуется Java AND .NET на том же оборудовании) это имеет большой импульс. Прошло много времени с тех пор, как я работал с ним, но я не помню, чтобы у него был собственный сканер. Если это все еще так, то для обеспечения его работоспособности следует использовать автономный сканер и вышеупомянутый API.

...