
Elasticsearch Onboarding
Guide your agent through Elasticsearch mappings and queries for product search, facets, and autocomplete in a shop or catalog app.
Overview
Elasticsearch-onboarding is an agent skill for the Build phase that guides catalog and e-commerce search setup with Elasticsearch facets, autocomplete, and merchandising boosts.
Install
npx skills add https://github.com/elastic/agent-skills --skill elasticsearch-onboardingWhat is this skill?
- Covers product search, faceted navigation, autocomplete, and did-you-mean flows
- Defines index mappings for text search, keyword facets, numeric filters, and nested attributes
- Merchandising and boosting patterns for new arrivals, sales, and attribute boosts
- Steers away from plain keyword-only search when structured catalog attributes matter
- Pairs with vector-hybrid guidance when semantic similar-product search is required
- Guide sections cover index mapping, faceted navigation, autocomplete, did-you-mean, and merchandising boosting
Adoption & trust: 1.1k installs on skills.sh; 502 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need product search with filters and suggestions but lack a clear Elasticsearch mapping and query playbook.
Who is it for?
Indie builders adding Elasticsearch-backed catalog search, faceted filters, and autocomplete to an e-commerce or SaaS product directory.
Skip if: Unstructured document search only, or teams that need semantic similarity without structured product attributes unless combined with hybrid vector guidance.
When should I use this skill?
Developer wants product search, faceted navigation, autocomplete, did-you-mean suggestions, or shopping-oriented search with Elasticsearch.
What do I get? / Deliverables
You get index mapping guidance and shopping-specific query patterns ready to implement in your backend integration.
- Recommended index mappings for catalog fields
- Query and facet patterns for search UX
Recommended Skills
Journey fit
How it compares
Elasticsearch integration playbook for catalogs—not a hosted search SaaS replacement or generic CRUD API skill.
Common Questions / FAQ
Who is elasticsearch-onboarding for?
Developers shipping product catalogs who want agent-guided Elasticsearch mappings, facets, and shopping relevance.
When should I use elasticsearch-onboarding?
During build integrations when you add product search, faceted navigation, autocomplete, or merchandising boosts to your store or directory.
Is elasticsearch-onboarding safe to install?
Check the Security Audits panel on this page; implementing the guide may require cluster credentials and network access you control.
SKILL.md
READMESKILL.md - Elasticsearch Onboarding
# Catalog / E-Commerce Search Guide Guide developers through building product catalog and e-commerce search with Elasticsearch. Use this guide when they need product search with filtering, faceting, autocomplete, boosting by attributes, and shopping-oriented relevance. ## 1. When to Use This Guide Apply this guide when the developer signals: - **Product search** — search across a product catalog with titles, descriptions, categories - **Faceted navigation** — filter by brand, category, price range, rating, with counts - **Autocomplete / typeahead** — suggest products as the user types - **"Did you mean"** — spelling correction and suggestions - **Merchandising / boosting** — promote certain products (new arrivals, on sale, high margin) - **Multi-attribute filtering** — size, color, availability, shipping options Do **not** use this guide when: the developer only needs document search without structured attributes — point them to keyword or hybrid search. If they need meaning-based "find similar products," combine this with the vector-hybrid-search guide. ## 2. Index Mapping E-commerce indices need text fields for search, keyword fields for filtering/faceting, numeric fields for sorting/range filters, and nested fields for variants. First, create a synonym set via the Synonyms API. Synonyms are applied at **search time** (via `search_analyzer`) so the set can be updated without reindexing: ```http PUT _synonyms/product-synonyms { "synonyms_set": [ { "id": "laptop", "synonyms": "laptop, notebook" }, { "id": "phone", "synonyms": "phone, mobile, cell phone" }, { "id": "tv", "synonyms": "tv, television" }, { "id": "headphones", "synonyms": "headphones, earphones, earbuds" } ] } ``` Then create the index referencing that synonym set: ```http PUT /products { "settings": { "analysis": { "analyzer": { "autocomplete_analyzer": { "type": "custom", "tokenizer": "standard", "filter": ["lowercase", "autocomplete_filter"] }, "synonym_search_analyzer": { "type": "custom", "tokenizer": "standard", "filter": ["lowercase", "product_synonyms"] } }, "filter": { "autocomplete_filter": { "type": "edge_ngram", "min_gram": 2, "max_gram": 15 }, "product_synonyms": { "type": "synonym_graph", "synonyms_set": "product-synonyms", "updateable": true } } } }, "mappings": { "properties": { "title": { "type": "text", "search_analyzer": "synonym_search_analyzer", "fields": { "keyword": { "type": "keyword" }, "autocomplete": { "type": "text", "analyzer": "autocomplete_analyzer", "search_analyzer": "standard" } } }, "description": { "type": "text", "search_analyzer": "synonym_search_analyzer" }, "category": { "type": "keyword" }, "subcategory": { "type": "keyword" }, "brand": { "type": "keyword" }, "price": { "type": "float" }, "sale_price": { "type": "float" }, "currency": { "type": "keyword" }, "rating": { "type": "float" }, "review_count": { "type": "integer" }, "in_stock": { "type": "boolean" }, "sku": { "type": "keyword" }, "tags": { "type": "keyword" }, "image_url": { "type": "keyword", "index": false }, "created_at": { "type": "date" }, "popularity_score": { "type": "float" }, "attributes": { "type": "nested", "properties": { "name": { "type": "keyword" }, "value": { "type": "keyword" } } }, "title_suggest": { "type": "compl