Ответ 1
Отъезд Haystack Search - новый слой абстракции поиска на основе модели, который в настоящее время поддерживает Xapian, Solr и Whoosh. Похоже, он хорошо поддерживается и документируется.
Я создаю проект Django, для которого нужны функции поиска, и пока там django.contrib.search
, я должен выбрать приложение для поиска. Итак, что лучше? Под "лучшим" я имею в виду...
Вот некоторые приложения, о которых я слышал, пожалуйста, сообщите другим, если вы знаете о них:
Я также хотел бы избежать использования сторонней поисковой системы (например, Google SiteSearch), потому что некоторые данные, которые я хотел бы индексировать, предназначены только для членов сайта и не должны быть общедоступными.
Отъезд Haystack Search - новый слой абстракции поиска на основе модели, который в настоящее время поддерживает Xapian, Solr и Whoosh. Похоже, он хорошо поддерживается и документируется.
Джастин, я сначала попробую djangosearch: над ним работает Джейкоб Каплан-Мосс (ведущий разработчик Django).
Потенциальные опасности:
Потенциальные преимущества:
django.contrib.search
".Я ищу то же самое, что и многие другие люди. Позвольте надеяться, что django.contrib.search будет добавлен в ближайшее время.
Тем временем, это то, что я нашел:
Для меня большинство выглядит довольно сложно и, честно говоря, немного сложнее реализовать. Мне было бы интересно узнать, что вы думаете об этом.
Я бы рекомендовал Sphinx для полнотекстового поиска и агрегации, а django-sphinx достаточно хорош для использования в производстве. Мы обнаружили, что Sphinx был наименее ресурсоемким и быстрым способом индексирования и поиска наших документов, а django-sphinx был красивой оболочкой поверх клиента sphinx.
Группа по агрегации особенно хороша, если, например, вы хотите отобразить, сколько документов с определенным тегом или определенным автором (или обоими) соответствовали поиску. В обновлениях атрибутов памяти также были удобны, особенно для немедленного удаления удаленных статей.
Кодовая страница google для djangosearch указывает, что она больше не находится в активной разработке и предлагает haystack или solango.
Спасибо, Гарт. Я видел, что 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")
Мне просто нужно было очень быстрое решение, которое не было проблемой для внутреннего приложения.
Я нашел статью добавление поиска в Django в оснастке, и это сработало великолепно для меня!
Очевидно, что ему не хватает скорости, масштабируемости и возможностей реальных проектов, таких как Haystack, но это проще настроить, и мне действительно не нужно ничего, кроме ключевого слова AND-search.
Возможно, вам стоит подумать о том, чтобы позволить Yahoo делать всю тяжелую работу с их созданием собственной службы поиска (BOSS). Вот отличный пост в блоге, в котором вы просматриваете процесс: http://www.peterkrantz.com/2008/yahoo-search-in-django/
Похоже, что здесь все пропустили django-xappy
После быстрой оценки всех существующих аддонов поиска для Django я нашел это наиболее гибким и простым в использовании. Он неровный по краям в нескольких местах, но он по-прежнему является лучшим способом использования возможности Xapian поисковой системы внутри проектов Django.
Вы можете посмотреть поиск Django Solr (он же "Solango" ), который поставляется с хорошей документацией, чтобы вы начали..
Если у вас есть большой объем данных для индексирования или вы ожидаете высокий трафик, я бы предложил использовать внешнюю поисковую систему, например Solr. Таким образом, вы будете придерживаться принципа "ничего общего" и сможете самостоятельно масштабировать компоненты своего сайта.
Думаю, мне придется дать крик Джапиану.
Это твердое тело... просто потяните вниз распределение источника и загляните внутрь. Верхний код надписи, не очень много комментариев tho..
Это еще молодой программный проект, но я думаю, что сообщество django должно выбросить его за этот.
Спасибо Джо,
Мы решили пойти с Tsearch2 и пользовательским адаптером postgres. Tsearch2 не нуждается в дополнительном процессе для запуска, что было удобно, так как мы находимся на хосте WebFaction с ограниченной памятью... Это еще не сделано, но, похоже, это хорошее решение...
Я нашел Djoosh, который полагается на внешнюю поисковую систему чистого питона Whoosh, чтобы хорошо работать с моим мозгом "Python".
Если вы хотите использовать стороннюю поисковую систему, я могу порекомендовать Yahoo BOSS и django-bosssearch.
Yahoo BOSS - платная услуга, но это экономит вам настройку и обслуживание другого программного обеспечения поиска на вашем сервере.