← Back to Skills Marketplace
1530
Downloads
5
Stars
10
Active Installs
1
Versions
Install in OpenClaw
/install elasticsearch
Description
Query and index Elasticsearch with proper mappings, analyzers, and search patterns.
README (SKILL.md)
Mapping Mistakes
- Always define explicit mappings—dynamic mapping guesses wrong (first "123" makes field integer, later "abc" fails)
textfor full-text search,keywordfor exact match/aggregations—using text for IDs breaks filters- Can't change field type after indexing—must reindex to new index with correct mapping
- Set
dynamic: "strict"to reject unmapped fields—catches typos in field names
Text vs Keyword
textis analyzed (tokenized, lowercased)—"Quick Brown" matches search for "quick"keywordis exact bytes—"Quick Brown" only matches exactly "Quick Brown"- Need both? Use multi-field:
"title": { "type": "text", "fields": { "raw": { "type": "keyword" }}} - Sort/aggregate on
title.raw, search ontitle
Query vs Filter Context
- Query context calculates relevance score—expensive, use for search ranking
- Filter context is yes/no—cacheable, use for exact conditions (status, date ranges)
- Combine:
bool.mustfor scoring,bool.filterfor filtering without scoring - Range queries on dates/numbers almost always belong in filter, not query
Analyzers
standardanalyzer lowercases and removes punctuation—fine for most textkeywordanalyzer keeps exact string—use for codes, SKUs, emails- Language analyzers (
english) stem words—"running" matches "run" - Test analyzer with
_analyzeendpoint before indexing—surprises in production hurt
Nested vs Object
- Object type flattens arrays—
{"tags": [{"key":"a","val":1}, {"key":"b","val":2}]}becomestags.key: [a,b], tags.val: [1,2] - Flattened loses association—query
key=a AND val=2incorrectly matches above - Use
nestedtype to preserve object boundaries—requiresnestedquery wrapper - Nested is expensive—avoid for high-cardinality arrays
Pagination Traps
from+sizelimited to 10,000 hits—deep pagination failssearch_afterfor deep pagination—requires consistent sort, typically_id- Scroll API for bulk export—keeps point-in-time view, but ties up resources
- Don't use scroll for user pagination—search_after is correct choice
Bulk Operations
- Never index documents one-by-one—use
_bulkAPI, 5-15MB batches - Bulk format: newline-delimited JSON, action line then document line
- Check response for partial failures—bulk can succeed overall with individual doc errors
- Set
refresh=falseduring bulk loads—refresh after batch completes
Performance
_source: falsewithstored_fieldsif you don't need full document—reduces I/O- Use
filterfor cacheable conditions—Elasticsearch caches filter results - Avoid leading wildcards (
*term)—forces full scan; usereversefield for suffix search profile: trueshows query execution breakdown—find slow clauses
Sharding
- Shard size 10-50GB optimal—too small = overhead, too large = slow recovery
- Number of shards fixed at creation—can't reshard without reindexing
- Replicas for read throughput and availability—set based on query load
- Start with 1 shard for small indices—over-sharding kills performance
Index Management
- Use index templates—new indices get consistent mappings and settings
- Use aliases for zero-downtime reindexing—point alias to new index after reindex
- ILM (Index Lifecycle Management) for time-series—auto-rollover, delete old indices
- Close unused indices to free memory—closed index uses no heap
Aggregations
termsagg needskeywordfield—text fields fail or give garbage- Default
size: 10on terms agg—increase to get all buckets, or use composite - Cardinality is approximate (HyperLogLog)—exact count requires scanning all docs
- Nested aggs require
nestedwrapper—matches nested query pattern
Common Errors
- "cluster_block_exception"—disk > 85%, cluster goes read-only; clear disk, reset with
_cluster/settings - "version conflict"—concurrent update; retry with
retry_on_conflictor use optimistic locking - "circuit_breaker_exception"—query uses too much memory; reduce aggregation scope
- Mapping explosion from dynamic fields—set
index.mapping.total_fields.limitand use strict mapping
Usage Guidance
This skill is a read-only instruction bundle (no code) that provides Elasticsearch best practices. It is internally consistent and low-risk to install. Before using: ensure any Elasticsearch endpoint and credentials you provide are least-privilege (prefer API keys limited to specific indices and actions), restrict network access to trusted clusters, test bulk/index operations on staging, and consider disabling autonomous invocation or not supplying credentials if you don't want the agent to perform queries/indexes automatically.
Capability Analysis
Type: OpenClaw Skill
Name: elasticsearch
Version: 1.0.0
The skill bundle is benign. It primarily consists of informational content about Elasticsearch best practices and common issues in SKILL.md. The only notable capability is the explicit requirement for `curl` in the metadata, which is a standard tool for interacting with Elasticsearch APIs and is consistent with the skill's stated purpose. There are no signs of prompt injection, data exfiltration, malicious execution, persistence mechanisms, or obfuscation.
Capability Assessment
Purpose & Capability
Name/description match the provided content (mapping, analyzers, queries, bulk operations, etc.). Declaring curl as an available binary is appropriate for an instruction-only skill that may use HTTP to call an Elasticsearch API.
Instruction Scope
SKILL.md contains best-practice guidance and operational notes about Elasticsearch APIs and behaviors. It does not instruct the agent to read arbitrary system files, access unrelated services, or exfiltrate data. All actions described are within the Elasticsearch domain.
Install Mechanism
No install spec or code files are present (instruction-only), so nothing will be written to disk or downloaded during installation — lowest-risk model.
Credentials
The skill declares no required environment variables or credentials. This is reasonable for a generic guidance skill, but practical use will require an Elasticsearch endpoint and likely credentials (API key/basic auth). The skill does not request them explicitly; ensure any credentials you supply are minimal-privilege and scoped.
Persistence & Privilege
always is false and the skill is user-invocable. Autonomous invocation is enabled (platform default) but not by itself a problem — be mindful that with provided ES credentials the agent could run queries or index data autonomously.
How to Use
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install elasticsearch - After installation, invoke the skill by name or use
/elasticsearch - Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release
Metadata
Frequently Asked Questions
What is Elasticsearch?
Query and index Elasticsearch with proper mappings, analyzers, and search patterns. It is an AI Agent Skill for Claude Code / OpenClaw, with 1530 downloads so far.
How do I install Elasticsearch?
Run "/install elasticsearch" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Elasticsearch free?
Yes, Elasticsearch is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Elasticsearch support?
Elasticsearch is cross-platform and runs anywhere OpenClaw / Claude Code is available (linux, darwin, win32).
Who created Elasticsearch?
It is built and maintained by Iván (@ivangdavila); the current version is v1.0.0.
More Skills