Полнотекстовый поиск для 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 вам необходимо тщательно выбирать условия индексации и хранимые документы для обеспечения соотношения производительности и функциональности.
У меня нет опыта работы с Сфинксом, поэтому я об этом не упомянул.