Полнотекстовый поиск для django с использованием MySQL

Я из PHP и сейчас использую Django, мне нравится сопоставлять запросы PHP и я хочу использовать уже разработанное приложение. для полнотекстового поиска. Хорошей частью является то, что есть много таких, как Джапиан, Сфинкс, Люцен, Соланго и Хейстек. И плохо, я не знаю, что я должен использовать? Приложение. новее, и поиск может быть другого типа, например, поиск людей по поиску контента и т. д. Поэтому я хочу, чтобы он был достаточно быстрым и быстрым в реализации и надежным. Так что кто-нибудь знает, какой из них лучше, а позже его можно легко заменить на наш собственный, если требуется?

Пожалуйста, также скажите, лучше ли писать с использованием Q.

Спасибо

1 ответ

Решение
  • Используйте Haystack с Xapian, Solr backend или Djapian, если ваш проект серьезен и функция поиска будет использоваться часто.
  • Используйте самодельный Q, если вы хотите играть с ORM или если есть дополнительный сложный фильтр или другие виды операций, которые Haystack не поддерживает. Не ожидайте многого от этого.

редактировать

Стог:

  • сменные бэкэнды, Xapian и Solr являются многообещающими (стабильные, быстрые и недорогие на диске).
  • хорошая интеграция с Django
  • настраиваемая политика индексации
  • иногда может быть что-то странное, вам нужно проверить код напрямую
  • установка бэкэндов может быть затруднена на некоторых платформах, но в Интернете есть инструкции

Используя встроенный полнотекстовый поиск MySQL, вам необходимо:

  • Вручную подготовить БД, проверить DOC и MySQL полнотекстовый поиск
  • написать такие вещи, как анализатор поисковых запросов и подсветка
  • осознавать загрузку БД от поиска
  • работать только в MySQL, но пока не легко в PostgreSQL
  • Это поддержка Django непосредственно на уровне ORM, поэтому тогда можно выполнить сложный фильтр. В Haystack вам необходимо тщательно выбирать условия индексации и хранимые документы для обеспечения соотношения производительности и функциональности.

У меня нет опыта работы с Сфинксом, поэтому я об этом не упомянул.

Другие вопросы по тегам