A search engine that actually understands what you mean. Unlike keyword search, MindSearch uses AI embeddings to find results based on meaning. Type a natural language query and get the most relevant results from any dataset.
Built with Sentence Transformers and ChromaDB.
- Natural language search — ask questions instead of guessing keywords
- Semantic similarity — finds results based on meaning, not exact matches
- Fast vector search using ChromaDB
- Built-in demo dataset with Wikipedia articles (auto-downloads on first run)
- Relevance scores for each result
- Search history tracking
- Responsive dark UI
git clone https://github.com/YOUR_USERNAME/mindsearch-semantic-engine.git
cd mindsearch-semantic-engine
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python app.pyOpen http://localhost:8000. On first run, the model and demo data will be downloaded (~90MB).
- Indexing — Text documents are converted to 384-dimensional vectors using a Sentence Transformer model
- Storage — Vectors are stored in ChromaDB (a local vector database)
- Search — Your query is converted to a vector, then ChromaDB finds the most similar documents
- Ranking — Results are returned sorted by cosine similarity
- Embeddings: Sentence Transformers (
all-MiniLM-L6-v2) - Vector DB: ChromaDB
- Backend: Python, FastAPI
- Frontend: HTML, CSS, JavaScript
mindsearch-semantic-engine/
├── app.py # FastAPI server
├── search_engine.py # Embedding + indexing + search logic
├── seed_data.py # Demo dataset loader
├── requirements.txt
├── static/
│ ├── index.html
│ ├── styles.css
│ └── script.js
└── README.md
You can index your own documents by calling the /api/index endpoint:
curl -X POST http://localhost:8000/api/index \
-H "Content-Type: application/json" \
-d '{"title": "My Document", "content": "Your text here...", "source": "manual"}'MIT