Какой лучший проект с открытым исходным кодом для полнотекстового поиска (предпочтительно .NET)? - PullRequest
12 голосов
/ 08 ноября 2010

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

1 Ответ

5 голосов
/ 08 ноября 2010

http://www.sphinxsearch.com

http://www.sphinxconnector.net/

Ключевые функции Sphinx:

  • высокая производительность индексации и поиска;
  • расширенная индексация иинструменты запросов (гибкий и многофункциональный текстовый токенизатор, язык запросов, несколько различных режимов ранжирования и т. д.);
  • расширенная пост-обработка набора результатов (SELECT с выражениями, WHERE, ORDER BY, GROUP BY и т. д. по текстовому поискурезультаты);
  • проверенная масштабируемость до миллиардов документов, терабайт данных и тысяч запросов в секунду;
  • простая интеграция с источниками данных SQL и XML, а также с SphinxAPI, SphinxQL или SphinxSEинтерфейсы поиска;
  • простое масштабирование с распределенным поиском.

Чтобы немного расширить, Sphinx:

  • имеет высокую скорость индексации (до 10-15 МБ/ сек на ядро ​​на внутреннем тесте);
  • имеет высокую скорость поиска (до 150-250 запросов / сек на ядро ​​для 1 000 000 документов, 1,2 ГБ данных на внутреннем тесте);
  • имеет высокий scaлабильность (самые известные кластерные индексы более 3 000 000 000 документов, а самая загруженная - более 50 000 000 запросов в день);
  • обеспечивает хорошее ранжирование по релевантности за счет комбинации ранжирования по близости фраз и статистического (BM25) ранжирования;
  • предоставляет возможности распределенного поиска;
  • обеспечивает генерацию фрагментов (фрагментов) документа;
  • обеспечивает поиск из приложения с интерфейсами SphinxAPI или SphinxQL и из MySQL с подключаемым механизмом хранения SphinxSE;
  • поддерживает логические, фразы, близость слов и другие типы запросов;
  • поддерживает несколько полнотекстовых полей на документ (до 32 по умолчанию);
  • поддерживает несколько дополнительных атрибутов на документ (т. Е.,группы, метки времени и т. д.;
  • поддерживает стоп-слова;
  • поддерживает морфологические словари форм слов;
  • поддерживает токенизирующие исключения;
  • поддерживает оба однобайтовых кодированияи UTF-8;
  • поддерживает стемминг (встроены стеммеры для английского, русского и чешского языков; стеммеры для французского, испанского, португальского, итальянского, румынского, немецкого, голландского, шведского, норвежского, датского, финского языков(На венгерском языке доступны при создании сторонней библиотеки libstemmer);
  • поддерживает MySQL изначально (поддерживаются все типы таблиц, включая MyISAM, InnoDB, NDB, Archive и т. Д.);
  • поддерживает PostgreSQL
  • изначально поддерживает ODBC-совместимые базы данных (MS SQL, Oracle и т. д.);
  • ... имеет более 50 других функций, не перечисленных здесь, см. руководство по API и конфигурации!
...