Show HN: Single API for keyword and semantic and recency (no more duct-tape)
coderswap.aiHey HN! Like many of you, I've built the same search infrastructure multiple times: Elasticsearch for keywords, Pinecone for vectors, Redis for recent items, and a mess of Python trying to merge results. The pattern we all know: python# Sound familiar? keyword_results = elasticsearch.search(query) vector_results = pinecone.query(embedding) recent_results = redis.get_recent() # ...200 lines of merge logic, score normalization, dedup After building this three times at different companies, we decided to combine everything into one API. Not revolutionary, just practical - handle keyword matching, semantic search, and recency scoring without the orchestration layer. Example with "ORA-12545 error from last week": The system recognizes "ORA-12545" needs exact matching (keyword), understands "error" conceptually (semantic), boosts recent results (temporal), and returns a single unified response. Some numbers from testing on Oracle docs (47GB): Traditional stack: 2-3 days to set up, 320ms latency, 3+ services to maintain, ~$400/month for ES + Pinecone + compute. Our approach: 5 minute setup, 180ms latency, 1 API endpoint, ~$200/month all-in. Trade-offs we made:
Simpler config (just weight ratios) vs full control English-only initially 100GB limit per index No graph relationships
The interesting bit: most teams don't actually need to tune BM25 parameters or vector similarity metrics. They just want search that works for their domain. What's not obvious until you run multiple search systems:
Keeping Elasticsearch and Pinecone in sync is a constant headache When search fails, debugging across three systems takes hours The merge logic becomes more complex than your actual application
Questions for the community:
What's your current search stack looking like? Is maintaining multiple systems worth the flexibility? What search problems are still unsolved for you?
Happy to share more technical details. We put up a demo at coderswap.ai if anyone wants to try it with their edge-case documents. What's been your experience combining keyword and vector search? Are you running multiple systems or found a better way?