elasticsearch について
Elasticsearchのインデックス設計、検索、クラスター運用を支援するスキルです。検索システムの開発・管理向けに、Query DSL、REST APIでのドキュメント操作、クラスター保守を扱います。
主な機能
- 01マッピング、アナライザー、インデックス設定の設計
- 02Query DSLによる検索と集計の作成
- 03REST APIでのドキュメント登録、更新、一括読み込み
- 04シャード、レプリカ、スナップショットの管理
- 05クラスターの状態監視とチューニング
活用シーン
- 01商品インデックスの作成と検索
- 02REST APIによるドキュメントの一括読み込みや更新
- 03シャード配置とスナップショットバックアップの計画
- 04ElasticsearchとKibanaまたはLogstashのワークフロー連携
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill elasticsearchインストール後、Claude Code で/elasticsearchを入力して読み込まれたか確認します。
同梱ファイルLICENSE.txt
詳細
このスキルを使用する場面
ユーザーが次のことを希望する場合は、このスキルを使用してください。
- アナライザーとフィールドタイプを指定してインデックスマッピングを設計する
- 検索クエリ(match、term、bool、multi_match、nested、集計)を作成する
- REST API を使ってドキュメントをインデックス登録、更新、または一括読み込みする
- クラスターを管理する(シャード、レプリカ、スナップショット、アップグレード)
- Elasticsearch を Kibana または Logstash(ELK スタック)と連携する
このスキルの使用方法
ワークフロー
- マッピングを設計する - フィールドタイプ、アナライザー、インデックス設定を定義します
- ドキュメントをインデックス登録する - PUT/POST または一括 API を使用します
- クエリを作成する - キャッシュ用のフィルターを使って Query DSL を使用します
- 監視して調整する - クラスターのヘルス、スローログ、シャードのバランスを確認します
クイックスタート例:インデックスの作成と検索
// 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" } }
}
}
ベストプラクティス
- 明示的なマッピングを定義する - 本番環境での動的マッピングは避け、エラーを検出できるように
dynamic: strictを設定します - 完全一致にはフィルターを使用する - フィルターはキャッシュされ、キーワードや範囲の条件ではクエリより高速です
- search_after でページネーションする - 深い
from/sizeページネーションは避け、大きな結果セットにはsearch_afterを使用します - シャードを慎重に計画する - シャードあたり 20~40 GB を目標とし、小さなシャードが多くなりすぎないようにします
- 定期的にスナップショットを作成する - バックアップにはスナップショット/リストアを使用し、リストア手順をテストします
キーワード
elasticsearch, 検索, インデックス, マッピング, クエリ DSL, 集計, 搜索引擎, 全文检索, 聚合, ELK, Kibana, 一括 API, クラスター
コメント
Markdown 対応