Этот проект является примером использования полного текстового поиска Django на основе PostgreSQL.
Версия, найденная в основной ветви, предоставляет приложение с формой поиска. Фактический поиск использует icontains Django, которые на уровне SQL like игнорируя случай букв. Это работает только для простых запросов поиска и очень неэффективно.
Функциональность поиска постепенно улучшается в дополнительных ветвях функций:
Прежде чем вы сможете запустить приложение в основной ветви, необходимо установить:
Следующее начало скачать несколько электронных книг:
sh scripts/rsync_gutenberg.shЗагрузка всей библиотеки проекта Гутенберг займет часы. Но для тестирования этот сценарий должен работать только в течение нескольких минут, пока он не загрузил несколько десятков или сотен электронных книг.
Вы можете оставить это на заднем плане на случай, если в конечном итоге вы хотите большее количество электронных книг.
Далее запустите контейнер Docker, предоставляя сервер базы данных PostgreSQL:
docker-compose up В то время как сервер работает, вы не можете ввести новые команды в терминале, поэтому откройте новый, чтобы следовать командам. (В качестве альтернативы вы можете добавить опцию --detach к приведенному вызову.)
После этого установите поэтическую среду и крюк перед набором:
sh scripts/setup_project.shКак только это будет закончено, откройте поэтическую оболочку:
poetry shellЛюбые дальнейшие команды должны выполняться в этой оболочке.
Далее настройте базу данных:
sh scripts/reset_local_database.shЭто создает или очищает базу данных и загружает в нее несколько электронных книг.
Наконец, вы можете запустить локальный сервер разработки. При желании вы можете указать порт, чтобы избежать столкновений с существующими службами:
python manage.py runserver 8078Чтобы найти поиск, перейдите на http://127.0.0.1:8078/ и введите один термин поиска слова, например, «Дом». (Более поздние ветви допускают более сложные поиски).
Чтобы просмотреть доступные документы, перейдите по адресу http://127.0.0.1:8078/admin/gutensearch/document/. Для входа в систему используйте admin в качестве имени пользователя и deMo.123 . 123 в качестве пароля.
После этого откройте слайды, хранящиеся в Full text search with Django and PostgreSQL.odp и пройдите через них. Для каждой новой представленной функции представлен образовательный запрос на привлечение, показывающий код, необходимый для его реализации (на основе предыдущего филиала функций).