Dieses Projekt ist ein Beispiel für die Verwendung von Djangos Volltextsuche basierend auf PostgreSQL.
Die in der Hauptzweig gefundene Version bietet eine Anwendung mit einem Suchformular. Die tatsächliche Suche verwendet Djangos icontains , die auf einer SQL -Ebene like , während der Fall von Buchstaben ignoriert wird. Dies funktioniert nur für einfache Suchanfragen und ist sehr ineffizient.
Die Suchfunktionalität wird in zusätzlichen Feature -Zweigen nach und nach verbessert:
Bevor Sie die Anwendung in der Hauptzweigung ausführen können, müssen Sie installieren:
Als nächstes starten Sie einige eBooks herunter:
sh scripts/rsync_gutenberg.shDas Herunterladen der gesamten Projektbibliothek Gutenberg dauert Stunden. Für das Testen muss dieses Skript jedoch nur ein paar Minuten ausgeführt werden, bis es ein paar Dutzend oder Hunderte von eBooks heruntergeladen hat.
Sie können dies im Hintergrund laufen lassen, falls Sie eine größere Anzahl von eBooks irgendwann wünschen.
Starten Sie als Nächstes den Docker -Container, der den PostgreSQL -Datenbankserver bereitstellt:
docker-compose up Während der Server ausgeführt wird, können Sie keine neuen Befehle in das Terminal eingeben. Öffnen Sie daher eine neue, damit die Befehle folgen sollen. (Alternativ können Sie den obigen Anruf die Option hinzufügen --detach .)
Richten Sie danach die Poesie-Umgebung und die Vorkommothaken ein:
sh scripts/setup_project.shSobald dies fertig ist, öffnen Sie eine Gedichtschale:
poetry shellWeitere Befehle sollten in dieser Shell ausgeführt werden.
Richten Sie als nächstes die Datenbank ein:
sh scripts/reset_local_database.shDadurch wird die Datenbank erstellt oder gelöscht und ein paar eBooks geladen.
Schließlich können Sie den lokalen Entwicklungsserver ausführen. Optional können Sie den Port angeben, um Konflikte mit vorhandenen Diensten zu vermeiden:
python manage.py runserver 8078Um zu suchen, navigieren Sie zu http://127.0.0.1:8078/ und geben Sie einen einzelnen Word -Suchbegriff ein, z. B. "Haus". (Spätere Zweige ermöglichen anspruchsvollere Suchanfragen).
Um die verfügbaren Dokumente zu durchsuchen, navigieren Sie zu http://127.0.0.1:8078/admin/gutensearch/document/. Verwenden Sie für die Anmeldung admin als Benutzername und deMo.123 als Passwort.
Öffnen Sie danach die in Full text search with Django and PostgreSQL.odp und arbeiten Sie sich durch sie. Für jede neue Funktion gibt es eine pädagogische Pull -Anfrage, die den Code zeigt, der für die Implementierung benötigt wird (basierend auf der vorherigen Feature -Filiale).