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

109

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

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

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

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

  • 1
    djangopackages.com/grids/g/search
  • 0
    Обычно такие вещи, как «лучший», довольно субъективны, но у django действительно есть одно «лучшее» поисковое приложение, как показывает принятый ответ.
Показать ещё 1 комментарий
Теги:
search
search-engine

15 ответов

95
Лучший ответ

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

  • 3
    Стог сена находится в стадии активной разработки, и автор всегда доступен через список адресов электронной почты.
  • 2
    Из проекта djangosearch: «Этот проект больше не находится в активной разработке. Если вы ищете приложение для полнотекстового поиска django, которое работает с несколькими поисковыми системами, проверьте стог сена. Если вы ищете что-то специфическое для Solr, вы можете хочу попробовать соланго.
Показать ещё 2 комментария
19

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

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

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

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

  • "Долгосрочная цель состоит в том, чтобы это стало django.contrib.search".
  • 43
    Теперь на странице написано: «Этот проект больше не находится в активной разработке. Если вы ищете приложение для полнотекстового поиска django, которое работает с несколькими поисковыми системами, посмотрите Haystack».
17

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

Тем временем, это то, что я нашел:

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

8

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

  • 2
    Соланго говорит, что он больше не разрабатывается, и рекомендует использовать стог сена.
8

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

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

6

Спасибо, Гарт. Я видел, что djangosearch хотел стать официальным поиском Django, но я не решался использовать его, потому что не мог найти никакой документации! К счастью, там README в subversion, который я раньше не видел, и это делает 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")
5

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

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

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

  • 0
    Спасибо, эта статья действительно полезна.
3

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

2

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

2

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

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

1

Думаю, мне придется дать крик Джапиану.

Это твердое тело... просто потяните вниз распределение источника и загляните внутрь. Верхний код надписи, не очень много комментариев tho..

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

1

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

0

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

Yahoo BOSS - платная услуга, но это экономит вам настройку и обслуживание другого программного обеспечения поиска на вашем сервере.

0

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

0

Спасибо Джо,

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню