該項目是使用Django基於PostgreSQL的全文搜索的示例。
在主分支中找到的版本提供了帶有搜索表格的應用程序。實際搜索使用Django的icontains ,這些like在SQL級別的地圖上忽略了字母的情況。這僅適用於簡單的搜索請求,並且非常效率低下。
搜索功能在其他功能分支中逐漸提高:
在您需要安裝的主分支中運行應用程序之前:
接下來開始下載一些電子書:
sh scripts/rsync_gutenberg.sh下載Gutenberg項目的整個圖書館將需要幾個小時。但是,要測試此腳本只需要運行幾分鐘,直到下載了幾十或數百本電子書。
您可以將此運行留在後台,以防最終想要更多的電子書。
接下來,啟動提供PostgreSQL數據庫服務器的Docker容器:
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/並輸入一個單詞搜索詞,例如“ House”。 (後來的分支允許更複雜的搜索)。
要瀏覽可用的文檔,請導航到http://127.0.0.1:8078/admin/gutensearch/document/。對於登錄名,將admin用作用戶名和deMo.123作為密碼。
之後, Full text search with Django and PostgreSQL.odp中的幻燈片,然後通過它們進行操作。對於介紹的每個新功能,都有一個教育拉力請求,顯示實現它所需的代碼(基於上一個功能分支)。