جستجو در فایلهای PDF همیشه یکی از نیازهای مهم در پروژههای تحقیقاتی، دانشگاهی و حتی سازمانی است.
این پروژه یک موتور جستجوی ساده و سریع برای فایلهای PDF است که با زبان Python و فریمورک FastAPI پیادهسازی شده.
- استخراج متن از فایلهای PDF و ذخیره آن در یک ایندکس جستجو.
- قابلیت جستجوی سریع در تمام PDFها با استفاده از Whoosh.
- رابط API مدرن با مستندات خودکار (Swagger و ReDoc).
- امکان گسترش آسان به سمت رابط وب کاربرپسند یا اتصال به فرانتاند (React/Vue/Angular).
- پایهای برای توسعه پروژههای بزرگتر مثل:
- کتابخانه دیجیتال
- سیستمهای مدیریت اسناد (DMS)
- موتورهای جستجوی داخلی سازمانی
- ابزارهای پژوهشی دانشگاهی
این پروژه از معماری ساده اما ماژولار استفاده میکند:
pdf_searcher/ │── pdfs/ # پوشهای برای ذخیره فایلهای PDF │── indexdir/ # پوشهی ایندکس (خودکار ساخته میشود) │── app.py # کد اصلی FastAPI (API جستجو) │── requirements.txt # لیست کتابخانههای موردنیاز │── README.md # مستندات پروژه
- FastAPI → پیادهسازی API و مدیریت درخواستها.
- Whoosh → موتور جستجو برای ایندکسسازی و جستجوی متون.
- PyPDF2 → استخراج متن از PDFها.
- Uvicorn → سرور ASGI برای اجرای FastAPI.
- زبان برنامهنویسی: Python 3.8+
- فریمورک وب: FastAPI
- موتور جستجو: Whoosh
- کتابخانه پردازش PDF: PyPDF2
- وبسرور: Uvicorn
git clone https://github.com/oneashkan/python_pdf_searcher
cd pdf-searcherpython -m venv venv
source venv/bin/activate # در ویندوز: venv\Scripts\activate pip install -r requirements.txt
uvicorn app:app --reloadمستندات Swagger → http://127.0.0.1:8000/docs مستندات ReDoc → http://127.0.0.1:8000/redoc
http://127.0.0.1:8000/search?query= query text
عبارت مورد نظر را جایگزین query textکنید مثلا