Repository navigation
v1.0.0
SmartLex v1.0.0 - Initial Release
Smart Lexical Search Engine - A powerful desktop application for searching inside PDF and Word documents based on content keywords.
What's New
This is the first official release of SmartLex, a high-performance document search engine that indexes and searches through your entire document collection in milliseconds.
Key Features
Core Functionality
- Content-Based Search: Find documents by searching for keywords that appear inside them, not just filenames
- Multi-Format Support: Index and search both PDF (
.pdf) and Word (.docx) documents - Lightning Fast: Search results in ~0.02 seconds after initial indexing
- Smart Ranking: Results automatically sorted by relevance score
- Intelligent Autocomplete: Get keyword suggestions as you type based on indexed content
Advanced Capabilities
- Parallel Processing: Utilizes 8 CPU cores for faster indexing of large document collections
- RAKE Algorithm: Advanced keyword extraction using Rapid Automatic Keyword Extraction
- Real-Time Progress: Visual feedback during the indexing process
- Cross-Platform: Works on Windows, Linux, and macOS
- Configurable: Easy customization through
config.json
User Interface
- Modern PyQt5 GUI: Clean, intuitive desktop interface
- Keyboard Shortcuts: Navigate efficiently with Enter, Tab, Esc, and arrow keys
- Search History: Track your previous searches
- Direct File Opening: Double-click results to instantly open documents
Technical Highlights
- Smart Indexing: Processes hundreds of gigabytes of documents efficiently
- Incremental Updates: Re-index only when needed
- Detailed Logging: Comprehensive logs for debugging and monitoring
- Error Handling: Robust error management and user feedback
- Memory Efficient: Optimized for handling large document collections
Performance
- Indexing Speed: ~5 minutes for 327GB of documents (first run only)
- Search Speed: ~0.02 seconds for subsequent searches
- Memory Footprint: Efficient index storage with JSON format
- Scalability: Handles thousands of documents seamlessly
Getting Started
Quick Start
# 1. Clone the repository
git clone https://github.com/dakshgoel2008/SmartLex.git
cd SmartLex
# 2. Run automated setup
python setup.py
# 3. Scan for documents
# Windows: scripts\pdf_search.bat
# Linux/Mac: scripts/pdf_search.sh
# 4. Launch the application
python searchEngine.pyRequirements
- Python 3.8 or higher
- Windows, Linux, or macOS
- Required packages (auto-installed):
- PyQt5 5.15.9
- PyMuPDF 1.23.8
- rake-nltk 1.0.6
- nltk 3.8.1
- python-docx 1.1.0
Project Structure
- Core Engine: Modular architecture with separate components for text extraction, keyword processing, and search
- GUI Layer: Intuitive PyQt5-based interface with threading support
- Scripts: Automated file collection for Windows and Unix systems
- Configuration: JSON-based settings for easy customization
Known Limitations
- First-run indexing required before searching
- Scans entire system drive (configurable in scripts)
- Requires sufficient disk space for index storage
Future Enhancements
I'm planning exciting features for upcoming releases:
- Support for additional file formats (TXT, RTF, etc.)
- Advanced search operators and filters
- Improvement on searching for deeper searches.
Documentation
For detailed documentation, usage examples, and troubleshooting, see the README.md.
Acknowledgments
This project is based on advanced information retrieval and NLP techniques. Special thanks to the RAKE algorithm developers and the open-source community.
License
License - see LICENSE for details.
Full Changelog: This is the first release of SmartLex!
For questions, issues, or feature requests, please visit my GitHub repository or contact me via email on goel.daksh2008@gmail.com.