tum-search
When campus search mixes crawling, summaries, embeddings, graph structure, and live updates, which signal should users trust first?
When campus search mixes crawling, summaries, embeddings, graph structure, and live updates, which signal should users trust first?
tum-search
Why this article exists
What should a campus search system trust when structure and intent point in different directions? This project explores how university knowledge can be crawled, summarized, embedded, connected, and updated without treating ranking as only keyword matching.
Problem
Campus knowledge search needs more than text lookup. It needs recursive crawling, concise page summaries, semantic retrieval, graph relationships, freshness signals, and visible progress when the index changes.
What shipped
Crawler, Gemini-powered summaries, Qdrant/CLIP vector search, knowledge-graph ideas, WebSocket crawl progress, dependency checks, setup scripts, and admin utilities.
Evidence
The README documents the crawler, summarization, vector-search, knowledge-graph, WebSocket update, setup, environment, and admin-tool surfaces.
Inspect path
Inspect the README, `web_server.py`, dependency scripts, crawler/summarization paths, Qdrant configuration, WebSocket update path, and admin scripts for database clearing and summary regeneration.
Boundary
The public README exposes a research/prototype search system, not a production campus search service, validated ranking benchmark, or official university information product.
What changed
Search quality became a systems question: topology, semantics, generated summaries, and update feedback matter together before ranking claims are credible.
Next question
Which signal should be trusted first when graph structure, semantic similarity, freshness, and keyword match disagree?
Open public repository
https://github.com/89325516/tum-search