2010-07-12 2 views
24

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

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

Спасибо заранее

+4

Посмотрите на Джанго стоге сена. Он обеспечивает уровень абстракции над solr, woosh, xapian и пару других поисковых систем. С помощью стога сена вы можете начать экспериментировать с помощью woosh, а затем переключиться на более быстрый и/или более мощный движок, не меняя больших изменений кода. –

ответ

11

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

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

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

+8

И «Whoosh!» просто звучит так круче, чем другие;) – drxzcl

+1

yup, для меня беспокойство - это производительность и простота реализации. –

+2

Если вы можете развернуть собственные модули и не иметь проблем с кодом GPL, я бы серьезно оценил xapian. Это быстро и легко. SOLR быстро, но не легко, Whoosh! легко, но не быстро. – drxzcl

1

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

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

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

+0

спасибо за ваш ответ Мэнни. Тем не менее, мне любопытно узнать, есть ли что-то вроде Lucene на питоне? –

+0

Да, однако это не порт с Java на Python, но это оболочка Python для Lucene. См. Http://lucene.apache.org/pylucene/ – Manny

+2

BTW Мне было бесконечно легче разговаривать на Python с SOLR (используя solrpy или интерфейс RESTful), чем работать непосредственно с привязками lucene. YMMV. – drxzcl

Смежные вопросы