elasticsearch
When to use this skill
Use this skill whenever the user wants to:
- Design index mappings with analyzers and field types
- Write search queries (match, term, bool, multi_match, nested, aggregations)
- Index, update, or bulk-load documents via the REST API
- Manage clusters (shards, replicas, snapshots, upgrades)
- Integrate Elasticsearch with Kibana or Logstash (ELK stack)
How to use this skill
Workflow
- Design the mapping - Define field types, analyzers, and index settings
- Index documents - Use PUT/POST or bulk API
- Write queries - Use Query DSL with filters for caching
- Monitor and tune - Check cluster health, slow logs, and shard balance
Quick-Start Example: Create Index and Search
// Create index with mapping
PUT /products
{
"mappings": {
"properties": {
"name": { "type": "text", "analyzer": "standard" },
"description": { "type": "text" },
"price": { "type": "float" },
"category": { "type": "keyword" },
"created_at": { "type": "date" }
}
}
}
// Index a document
POST /products/_doc
{
"name": "Wireless Mouse",
"description": "Ergonomic wireless mouse with USB-C receiver",
"price": 29.99,
"category": "electronics",
"created_at": "2025-01-15"
}
// Search with bool query and aggregation
GET /products/_search
{
"query": {
"bool": {
"must": [{ "match": { "description": "wireless" } }],
"filter": [{ "range": { "price": { "lte": 50 } } }]
}
},
"aggs": {
"by_category": { "terms": { "field": "category" } }
}
}
Best Practices
- Define explicit mappings - Avoid dynamic mapping in production; set
dynamic: strictto catch errors - Use filters for exact matches - Filters are cached and faster than queries for keyword/range conditions
- Paginate with search_after - Avoid deep
from/sizepagination; usesearch_afterfor large result sets - Plan shards carefully - Target 20-40 GB per shard; avoid too many small shards
- Snapshot regularly - Use snapshot/restore for backups; test restore procedures
Keywords
elasticsearch, search, index, mapping, query DSL, aggregation, 搜索引擎, 全文检索, 聚合, ELK, Kibana, bulk API, cluster
More from partme-ai/full-stack-skills
vite
Guidance for Vite using the official Guide, Config Reference, and Plugins pages. Use when the user needs Vite setup, configuration, or plugin selection details.
68element-plus-vue3
Provides comprehensive guidance for Element Plus Vue 3 component library including installation, components, themes, internationalization, and API reference. Use when the user asks about Element Plus for Vue 3, needs to build Vue 3 applications with Element Plus, or customize component styles.
63vue3
Guidance for Vue 3 using the official guide and API reference. Use when the user needs Vue 3 concepts, patterns, or API details to build components, apps, and tooling.
54electron
Build cross-platform desktop applications with Electron, covering main/renderer process architecture, IPC communication, BrowserWindow management, menus, tray icons, packaging, and security best practices. Use when the user asks about Electron, needs to create desktop applications, implement Electron features, or build cross-platform desktop apps.
51uniapp-project
Provides per-component and per-API examples with cross-platform compatibility details for uni-app, covering built-in components, uni-ui components, and APIs (network, storage, device, UI, navigation, media). Use when the user needs official uni-app components or APIs, wants per-component examples with doc links, or needs platform compatibility checks.
40ascii-cli-logo-banner
Entry point for ASCII CLI banners that routes to the Python built-in font skill or figlet.js/FIGfont skill. Use when the user wants a startup banner, ASCII logo, terminal welcome screen, or CLI branding for a service.
38