Полнотекстовый поиск: Whoosh Vs SOLR

Я работаю над проектом Django, где мне нужно реализовать полнотекстовый поиск. Я видел SOLR и нашел хорошие комментарии для этого же. Но так как он реализован на Java и для него будет установлена ​​среда Java, а также Python. Ищете эквивалент python для SOLR, я видел Whoosh, но я не уверен, насколько Whoosh настолько эффективен и силен, как SOLR. Или я могу пойти только с опцией SOLR или есть ли лучшие варианты, чем Whoosh и SOLR с python?

Просьба предложить.

Заранее спасибо

Ответ 1

Whoosh на самом деле очень быстро реализуется только для реализации на основе python. Тем не менее, он по крайней мере на порядок медленнее. В зависимости от объема данных, которые необходимо индексировать и искать, а также требований к максимально допустимой задержке и параллельным поискам, это может быть не вариант.

SOLR - это немного сложный зверь, но это, безусловно, самое всестороннее решение для поиска. Смешайте его с solrpy для потрясающих результатов. Да, вам понадобится Java-хостинг.

Вы также можете проверить привязки python для xapian. Xapian очень быстрый, но не полный комплекс решений, чем SOLR. Они лицензированы GPL, так что они могут/не быть жизнеспособными для вас.

Ответ 2

Я использовал расширения Lucene и Lucene, такие как SOLR и Nutch, и я узнал, что люцен очень удовлетворяет то, что мне нужно. Я только однажды попробовал Whoosh, но выбрал Lucene, потому что 1) Я использую Java 2) У меня возникли проблемы с работой UTF-8 с Whoosh (не уверен, что теперь это работает из коробки). В Lucene у меня не было проблем с китайскими иероглифами.

Если вы используете Python в качестве языка программирования, а Whoosh удовлетворяет вашим потребностям, я предлагаю вам использовать его по альтернативам Java для лучшей интеграции, избегать внешних зависимостей, более быстрой настройки, если вам нужно закодировать дополнительные функции.

UPDATE: если вы заинтересованы в использовании Lucene, у него есть оболочка Python: см. http://lucene.apache.org/pylucene/