Where developers learn, build, and share. Your source for hands-on demos, cheat sheets, explainers and more.

Joined October 2009
3,889 Photos and videos
I always enjoy developer story time 📖
Here's a story about 3 engineers - Cora, Samantha and Ben, configuring vector search. For the same task, they end up with completely different setups. Who's right, and who's wrong?
1
8
3,054
You've got 10k slides, scans, and screenshots to search. Your first instinct is to throw a VLM at it. But a VLM reads one image at a time. Running it across your whole corpus on every query doesn’t scale. Split the pipeline instead. jina-clip embeds every image into a vector once. At query time, the same model embeds your question and does a similarity lookup. Jina-VLM only touches the matched slides: a handful of images, not thousands. Build the index once, then retrieval is instant. The VLM only reasons where it matters.
3
6
40
3,302
7x higher vector search throughput at comparable recall. Elasticsearch 9.4.1 DiskBBQ vs Qdrant 1.18.1, tested on network-attached persistent storage. The storage topology most K8s and managed-cloud deployments actually run on. Not local NVMe. The gap is disk access. DiskBBQ searches a compact quantized index and limits full-precision reads. Qdrant rescores against original vectors on disk. On network-attached storage, those random reads get expensive. Elasticsearch latency: 120 to 150ms across recall levels. Qdrant: 315ms to 900ms as recall increases. Benchmark tool, dataset, and configs are all published below.
4
5
16
1,963
🧵 Elasticsearch now queries time series metrics up to 160x faster than previous versions. TSDS and ES|QL were rebuilt over the past year. Three areas changed: storage, queries, and Prometheus compatibility. The result: - A fully columnar metrics engine. - OTel indexing throughput is up to 50% higher. - Storage for OTel metrics dropped to 3.75 bytes per data point.
15
12
105
1,875,454
3/ Storage - OTel metrics: 25 bytes down to 3.75 per data point. Four TSDS changes cut storage by 6.6x: - Doc value skippers: replace inverted indices and BKD trees - Synthetic _id: derived from _tsid and @ timestamp, bloom filter dedup - Sequence numbers: trimmed at merge time once the global checkpoint passes - Larger codec blocks: compress repeated dimension values 21 bytes cut. Each change independent.
1
3
646
TL;DR: - Queries: up to 160x faster - PromQL runs inside ES|QL, same engine - Storage: 6.6x more efficient for OTel metrics - One platform: metrics, logs, traces, documents Full architecture deep dive with benchmarks in the blog: go.es.io/4xZeJ2p
2
484
Up to 30× faster than Prometheus on gauge averages and counter rates. Up to 2.5× more storage efficient than Prometheus. That's ES|QL running on a new columnar storage engine purpose-built for time series data. Cost approximately 50% less than Datadog. No custom metric penalties. What landed: - Prometheus Remote Write and native PromQL in Kibana: existing queries, dashboards, and alert rules work as-is - OOTB K8s and AWS content at ingest: dashboards, alert templates, ML anomaly jobs, Workflows, and SLO Templates - ES|QL time series queries across metrics, logs, and traces in one backend - Agentic investigation via Observability MCP App and Agent Skills: run structured investigations from Claude, Cursor, or VS Code Every metric at full resolution. No forced rollups. No surprise invoice at the end of the month.
17
9
142
3,419,102
Hybrid search = BM25 vector search, merged and reranked in 1 request. Most search implementations pick one. Lexical search misses semantic intent. Vector search misses exact keyword matches. Hybrid covers both. Here's how it fits together in a single Elasticsearch query: - Lexical: standard multi-match across fields (BM25 scoring) - Vector: semantic retriever via ELSER, k=50 candidates - Fusion: RRF merges both result sets by rank, not score - Reranking: text_similarity_reranker re-orders the final set RRF is the key mechanism. It combines rank positions. That's what makes mixing BM25 and vector results reliable without score normalisation.
5
6
52
4,067
Your Claude Code agent forgets everything between sessions. So you bolt on a memory service. Another API, another thing to run. If you already run Elasticsearch, you already have the parts. semantic_text handles embeddings at index time. ES|QL gives you hybrid recall in one query: BM25 for the exact task ID, vector search for the related concept, a DECAY function so today's context outranks last month's. agent-memory wires it in with three hooks: SessionStart syncs, PostToolUse indexes every .md you write, Stop logs the session. The agent never has to remember to remember. Honest caveat: cross-device recall needs ES reachable from both machines. Not a local-only trick.
6
8
33
3,694
Elastic reposted
Cooking up a new video a live session to demo video search with @JinaAI_ omni v5 model and @elastic. Here's a preview of the demo app running entirely locally & live on my Mac. More soon 😉
2
9
1,004
Most data analysis still feels like translation work. Someone asks which products drive revenue. Then you write queries, join tables, check dashboards, validate assumptions. An hour later, maybe you have an answer. This tutorial wires Elastic Agent Builder MCP to @awscloud Bedrock AgentCore with the Strands SDK. Plain English in, auditable queries out. The agent reasons, picks tools, queries your cluster, and loops until the task is done. Every step indexes back into Elasticsearch for search and audit. Same cluster and security model you already run.
1
1
10
1,897
Most search benchmarks only tell half the story. You test relevance. You ship it. Then p99 latency tanks under real concurrency and users start filing tickets. Or you optimize for speed, and your top-k results are fast garbage. The fix: measure both sides every time. 10 metrics that matter, mapped out.
25
15
193
5,288,359