Живой поиск в Джанго - PullRequest
       7

Живой поиск в Джанго

0 голосов
/ 04 сентября 2018

Я работаю над приложением Django, которое требует реализации живого поиска, то есть фильтрации и отображения результатов поиска каждый раз, когда изменяется форма ввода.

Например:

Учтите, что я хотел найти в своей базе данных книги, когда указано название книги. Теперь я хочу предложить книги, которые имеют «имя», похожее на «имя», указанное в качестве входных данных.

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

Как мне это сделать?

Я имею в виду два решения.

Решение - 1

Используйте jQuery и вызывайте AJAX для получения новых предложений, каждый раз, когда изменяется содержимое поля ввода для «имени».

Решение - 2

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


<ч />


Я думаю, что решение - 2 было бы неосуществимо для больших баз данных, поскольку мы не сможем создавать массивы таких больших размеров.

Итак, решение - 1 - это единственный вариант для больших баз данных.

Или есть ли другие способы реализовать эту опцию «живого поиска»?

Если да, то что они?

иначе, как я могу оптимизировать решение - 1?

Спасибо!

1 Ответ

0 голосов
/ 05 сентября 2018

Для небольших данных 100-х записей, может быть, 1000-х, если они не слишком большие, подход 2 хорошо.

Для больших данных лучше использовать подход 1: взгляните на библиотеку typeahead: https://twitter.github.io/typeahead.js/ - вы можете создать API, используя http://www.django -rest-framework.org /

Для больших данных я использую эластичный поиск для зеркального отображения данных моделей. Эта библиотека - хороший способ начать: https://github.com/jaddison/django-simple-elasticsearch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...