Какое лучшее приложение для поиска Django?

Я создаю проект Django, которому нужна функция поиска, и пока не появится django.contrib.search, мне нужно выбрать приложение для поиска. Итак, что лучше? Под "лучшим" я имею в виду...

  • легко установить/настроить
  • имеет Django- или, по крайней мере, Python-дружественный API
  • может выполнять достаточно сложный поиск

Вот некоторые приложения, о которых я слышал, пожалуйста, предложите другие, если вы знаете о них:

Я также хотел бы избежать использования сторонней поисковой системы (например, Google SiteSearch), потому что некоторые данные, которые я хотел бы проиндексировать, предназначены только для участников сайта и не должны быть общедоступными.


person Justin Voss    schedule 10.09.2008    source источник
comment
djangopackages.com/grids/g/search   -  person Salman von Abbas    schedule 08.12.2013
comment
Обычно такие вещи, как лучшее, довольно субъективны, но у django действительно есть одно лучшее приложение для поиска, как показывает принятый ответ.   -  person    schedule 16.05.2015
comment
Если я полностью не понимаю django, это все еще запрос библиотеки и, следовательно, не по теме.   -  person Jeffrey Bosboom    schedule 16.05.2015


Ответы (15)


Ознакомьтесь с Haystack Search — новым уровнем абстракции поиска на основе модели, который в настоящее время поддерживает Xapian, Solr и Whoosh. Похоже, он хорошо поддерживается и документирован.

person kpw    schedule 08.05.2009
comment
Haystack находится в активной разработке, и автор всегда доступен по электронной почте. - person Tom; 09.09.2009
comment
Из проекта djangosearch: этот проект больше не находится в активной разработке. Если вы ищете приложение для полнотекстового поиска django, которое работает с несколькими поисковыми системами, обратите внимание на стог сена. Если вы ищете что-то конкретное для Solr, вы можете попробовать solango. - person Esteban Feldman; 07.03.2010
comment
Haystack плохо, если вообще поддерживается, в течение достаточно долгого времени. Я рекомендую вам избегать этого на данном этапе. Может быть, они исправят это в будущем, но сейчас это плохое место. - person Aaron Schif; 31.07.2013
comment
Я согласен, последняя версия haystack (2.1) вообще не работает с моей версией python 2.7 для django 1.4. - person Chris Hawkes; 18.08.2013

Джастин, я бы сначала попробовал djangosearch: Джейкоб Каплан-Мосс (ведущий разработчик Django) работает в теме.

Потенциальные опасности:

  • Домашняя страница предупреждает, что API может быть не совсем стабильным

Потенциальные преимущества:

  • «Долгосрочная цель состоит в том, чтобы это стало django.contrib.search».
person Garth Kidd    schedule 11.09.2008
comment
Теперь на странице написано, что этот проект больше не находится в активной разработке. Если вы ищете приложение для полнотекстового поиска django, которое работает с несколькими поисковыми системами, обратите внимание на Haystack. - person Tomas Andrle; 30.06.2009

Я ищу то же самое, как и многие другие люди. Будем надеяться, что скоро будет добавлен django.contrib.search.

А пока вот что нашел:

На мой взгляд, большинство из них выглядят довольно сложными и, честно говоря, немного сложными для реализации. Мне было бы интересно узнать, что вы думаете об этом.

person davidhund    schedule 16.10.2008

Кодовая страница Google для djangosearch указывает, что она больше не находится в активной разработке, и предлагает стог сена или соланго.

person Joe Germuska    schedule 09.05.2009
comment
Solango говорит, что он больше не разрабатывается, и рекомендует использовать Haystack. - person Rory; 12.09.2011

Я бы рекомендовал Sphinx для полнотекстового поиска и агрегации, а django-sphinx достаточно хорош для использования в продакшене. Мы обнаружили, что Sphinx был наименее ресурсоемким и быстрым способом индексации и поиска наших документов, а django-sphinx был хорошей оболочкой поверх клиента sphinx.

Группировка по агрегации особенно удобна, если, например, вы хотите отобразить, сколько документов с определенным тегом или определенным автором (или обоими) соответствует поиску. Обновление атрибутов в памяти тоже было удобно, особенно для немедленного удаления удаленных статей.

person Joe W.    schedule 23.10.2008

Спасибо Гарт. Я видел, что djangosearch хотел стать официальным поиском Django, но не решался использовать его, потому что не мог найти никакой документации! К счастью, в subversion есть README., которого я раньше не видел, и благодаря этому API выглядит очень круто:

# set up the model
class Event(models.Model):
    title = models.CharField(max_length=255)
    date = models.DateField()
    is_outdoors = models.BooleanField()

    index = djangosearch.ModelIndex(text=['title'], 
                                    additional=['date', 'is_outdoors'])

# run a search
results = Event.index.search("django conference")
person Justin Voss    schedule 11.09.2008

Мне просто нужно было очень быстрое решение, не требующее особых усилий для внутреннего приложения.

Я нашел статью Добавление поиска в Django в Щелчок, и это сработало для меня великолепно!

Очевидно, что ему не хватает скорости, масштабируемости и функций реальных проектов, таких как Haystack, но этот проще настроить, и мне действительно не нужно ничего, кроме ключевого слова AND-search.

person odinho - Velmont    schedule 22.04.2011

Возможно, вы захотите позволить Yahoo сделать всю тяжелую работу с их Build your own Search Service (BOSS). Вот отличный пост в блоге, который проведет вас через весь процесс: http://www.peterkrantz.com/2008/yahoo-search-in-django/

person Gourneau    schedule 26.04.2009
comment
У меня есть пакет Django, который делает это еще проще: bitbucket.org/jaap3/django-bosssearch< /а> - person jaap3; 13.05.2012

Похоже, все здесь пропустили django-xappy

После быстрой оценки всех существующих поисковых аддонов для Django я нашел этот наиболее гибким и простым в использовании. В некоторых местах это грубо, но все же это лучший способ использовать мощь поисковой системы Xapian внутри проектов Django.

person vvarp    schedule 27.01.2009

Возможно, вам стоит взглянуть на поиск Django Solr (он же "Solango"). который поставляется с хорошей документацией, чтобы вы начали...

person ahagenbruch    schedule 15.04.2009

Если у вас есть большой объем данных для индексации или вы ожидаете высокий трафик, я бы предложил использовать какую-нибудь внешнюю поисковую систему, например Солнце. Таким образом, вы сохраните подход без совместного использования и сможете масштабировать компоненты сайта независимо друг от друга.

person zgoda    schedule 17.09.2008

Я думаю, что мне придется воздать должное Джапяну.

Он надежен... просто скачайте исходный дистрибутив и загляните внутрь. Код на высшем уровне, комментариев не очень много..

Это все еще молодой программный проект, но я думаю, что сообщество django должно поддержать его.

person Community    schedule 31.05.2009

Спасибо, Джо,

Мы решили использовать Tsearch2 и собственный адаптер postgres. Tsearch2 не требует дополнительного процесса для запуска, что было удобно, так как мы находимся на хостинге WebFaction с ограниченной памятью... Это еще не полностью сделано, но кажется хорошим решением...

person davidhund    schedule 24.10.2008

Я нашел Djoosh, который использует внешнюю поисковую систему на чистом Python Whoosh, чтобы хорошо работать с моим мозгом Python.

person Community    schedule 14.04.2009

Если вы хотите использовать стороннюю поисковую систему, я могу порекомендовать Yahoo BOSS и django-bosssearch.

Yahoo BOSS — это платная услуга, но она избавляет вас от необходимости устанавливать и поддерживать другие поисковые программы на вашем сервере.

person jaap3    schedule 13.05.2012