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.
Show more
Run the same vector search benchmark across 3 engines.
Jingra is a new open-source framework that uses YAML config to run identical workloads on Elasticsearch, OpenSearch, and Qdrant.
The part that matters: with await_index_ready enabled, it holds evaluation until the index reaches the state you intend to measure. Elasticsearch merges segments after ingest. Qdrant runs its own post-ingest optimizations. Both affect query latency, and most benchmarks measure before either finishes.
Parameter sweeps generate recall vs latency curves in a single run. Results go to console, CSV, or an Elasticsearch index for dashboarding.
Apache 2.0, Docker Compose demos, one make command.
Show more
3 types of mappings in Elasticsearch
Dynamic: Elasticsearch detects field types as documents arrive.
Explicit: you define every field upfront. Recommended for production.
Runtime: schema-on-read, no reindexing needed.
Each trades setup speed for indexing control.
Show more
Learn how to cut Elasticsearch log storage by up to 76% with LogsDB:
1. Create a LogsDB index with "index.mode": "logsdb"
2. Reindex your logs into both a standard and LogsDB index
3. Force merge both indices with _forcemerge?max_num_segments=1
4. Measure the difference with the _stats API
In our test: 15.37 MB (standard) vs 8.6 MB (LogsDB). 44% reduction on test data. 76% in production benchmarks.
Show more
Here are 5 distance metrics in vector search.
But how do you choose the right one?
• L1 (Manhattan): sum of absolute differences, exact kNN only with no HNSW support
• L2 (Euclidean): straight-line distance, the safe default for most models
• Cosine similarity: angle between vectors, magnitude ignored
• Dot product: same ranking as cosine on normalized vectors, less compute
• Max inner product: dot product without the normalization constraint
Most teams default to cosine and move on. That works until your model outputs non-normalized vectors, and suddenly dot product or max inner product is the better fit.
Scoring formulas and config details in the blog.
Show more
Building a dashboard mid-investigation means losing the thread you were pulling.
Open the editor, pick indices, configure panels, wire up ES|QL queries.
That's ten minutes of context switching before you've answered a single question.
Kibana skips that now.
• Describe what you need in plain language.
• The agent explores your indices, generates ES|QL, picks chart types, and lays out the panels.
Everything stays in your conversation until you save it.
Then it becomes a first-class Kibana object your team can open and edit.
Already viewing one? The agent attaches automatically.
Ask why a metric spiked, add a comparison panel, break it down by region: all inline.
Available as a technical preview in Elastic 9.4
Show more