Ce projet est un exemple pour l'utilisation de la recherche de texte intégral de Django basé sur PostgreSQL.
La version trouvée dans la branche principale fournit une application avec un formulaire de recherche. La recherche réelle utilise icontains de Django qui sur un niveau SQL sont des cartes à like tout en ignorant le cas des lettres. Cela ne fonctionne que pour des demandes de recherche simples et est très inefficace.
La fonctionnalité de recherche est progressivement améliorée dans les branches de fonctionnalités supplémentaires:
Avant de pouvoir exécuter l'application dans la branche principale, vous devez installer:
Ensuite, commencez à télécharger quelques ebooks:
sh scripts/rsync_gutenberg.shLe téléchargement de la bibliothèque entière du projet Gutenberg prendra des heures. Mais pour tester ce script, il suffit de fonctionner pendant quelques minutes jusqu'à ce qu'il en télécharge quelques dizaines ou des centaines de livres électroniques.
Vous pouvez laisser cette course en arrière-plan au cas où vous voudriez éventuellement une plus grande quantité d'ebooks.
Ensuite, lancez le conteneur Docker fournissant le serveur de base de données PostgreSQL:
docker-compose up Pendant que le serveur s'exécute, vous ne pouvez pas saisir de nouvelles commandes dans le terminal, alors ouvrez une nouvelle pour les commandes à suivre. (Alternativement, vous pouvez ajouter l'option --detach à l'appel ci-dessus.)
Après cela, configurez l'environnement de poésie et le crochet de pré-engagement:
sh scripts/setup_project.shUne fois cela terminé, ouvrez une coque de poésie:
poetry shellToutes les autres commandes doivent être exécutées dans ce shell.
Ensuite, configurez la base de données:
sh scripts/reset_local_database.shCela crée ou efface la base de données et y charge quelques ebooks.
Enfin, vous pouvez exécuter le serveur de développement local. Éventuellement, vous pouvez spécifier le port pour éviter les affrontements avec les services existants:
python manage.py runserver 8078Pour rechercher, accédez à http://127.0.0.1:8078/ et entrez un seul terme de recherche de mots, par exemple "maison". (Les branches ultérieures permettent des recherches plus sophistiquées).
Pour parcourir les documents disponibles, accédez à http://127.0.0.1:8078/admin/Gutensearch/Document/. Pour la connexion, utilisez admin comme nom d'utilisateur et deMo.123 comme mot de passe.
Après cela, ouvrez les diapositives stockées dans Full text search with Django and PostgreSQL.odp et vous frayez un chemin. Pour chaque nouvelle fonctionnalité introduite, il existe une demande de traction éducative montrant le code nécessaire pour l'implémenter (basé sur la branche de fonctionnalité précédente).