Полнотекстовый поиск: 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/