feedstack

A search engine for engineering blogs

End-to-end information retrieval system — crawler, indexer, ranker, and UI — built in Java with no external search frameworks.

posts indexed
company blogs
unique index terms
avg query latency

Pipeline

1
Crawl

Ingests 400+ RSS feeds via an OPML feed list. Respects robots.txt, enforces per-domain rate limits, and validates redirects to block SSRF.

2
Index

Custom tokenizer with Porter stemming and bigram generation writes a compact binary inverted index. Token and doc metadata are stored in flat text files for fast loading.

3
Rank

Queries score with BM25 for term relevance, multiplied by a PageRank signal built from the inter-blog citation graph. Domain diversification prevents one blog from dominating results.

4
Discover

"More like this" uses dense embeddings and cosine similarity to surface related posts. K-means clustering groups the full corpus into browsable topic areas.

Stack

Java BM25 PageRank Porter stemmer Inverted index RSS / OPML Dense embeddings K-means clustering Vanilla JS