# elasticsearch-ingest

Скилл превращает локальные CSV и JSON в bulk NDJSON и грузит их в Elasticsearch, проверяя маппинги и число документов.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1000 установок · ★ 601
- Автор: elastic
- Лицензия: Apache-2.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/elastic/agent-skills/tree/HEAD/skills/elasticsearch/elasticsearch-ingest/SKILL.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/skills/elasticsearch-ingest

## Что делает

Скилл ведёт агента по шагам: проверить связь с кластером, определить форму файла, выбрать имя индекса, решить, нужен ли явный маппинг, создать индекс, собрать NDJSON и отправить его через `POST /_bulk`. После загрузки он сверяет число документов и типы полей — без этой проверки успешный код возврата ничего не доказывает.

Внутри три опорных документа: формат bulk NDJSON, подбор типов полей и разбор ошибок. Поддерживаются CSV с заголовком, JSON-массив и NDJSON. Parquet и Arrow в область не входят, пока их не переведут в CSV или JSON. Копирование между существующими индексами — тоже не сюда, для этого есть reindex.

Работа идёт через `elastic` CLI версии 0.2 и выше с поддержкой `stack es`; HTTP API напрямую скилл вызывать не разрешает. Нужен Elasticsearch 8.x или 9.x — self-managed, Elastic Cloud Hosted или Serverless. Если индекс уже существует с неправильными типами, скилл сначала спросит, прежде чем удалять его и создавать заново.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add elastic/agent-skills --skill elasticsearch-ingest -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/elasticsearch-ingest/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/elasticsearch-ingest/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add elastic/agent-skills --skill elasticsearch-ingest -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/elasticsearch-ingest/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add elastic/agent-skills --skill elasticsearch-ingest -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/elasticsearch-ingest/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install elastic/agent-skills elasticsearch-ingest
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/elasticsearch-ingest/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add elastic/agent-skills --skill elasticsearch-ingest -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/elastic/agent-skills --path skills/elasticsearch/elasticsearch-ingest
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/elasticsearch-ingest/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add elastic/agent-skills --skill elasticsearch-ingest -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/elastic/agent-skills/tree/HEAD/skills/elasticsearch/elasticsearch-ingest/SKILL.md

## Когда брать
- залить CSV с типами полей, а не строками
- разбить JSON-массив на отдельные документы для bulk
- сверить число загруженных документов с числом строк в файле
- проверить, что даты и числа легли нужными типами
- пересоздать индекс с корректным маппингом после неудачной загрузки

## Примеры запросов агенту
- Загрузи `orders.csv` в индекс `orders` — колонки `total` и `created_at` должны быть числами и датами
- Собери NDJSON из `events.json` и отправь в bulk, потом покажи `GET /events/_count`
- Проверь маппинг индекса `orders` и скажи, какие поля стали `text` вместо `long`

## Похожие
- [ingest-pipelines](https://affpapa.org/nevibecode/skills/ingest-pipelines.md) — скилл · 516 установок
- [reporting-pipelines](https://affpapa.org/nevibecode/skills/reporting-pipelines.md) — скилл · 354 установки
- [firecrawl-knowledge-ingest](https://affpapa.org/nevibecode/skills/firecrawl-knowledge-ingest.md) — скилл · 31400 установок
- [firecrawl-company-directories](https://affpapa.org/nevibecode/skills/firecrawl-company-directories.md) — скилл · 31400 установок
- [wellally-tech](https://affpapa.org/nevibecode/skills/wellally-tech.md) — скилл · ★ 964
- [anonymize-logs](https://affpapa.org/nevibecode/skills/anonymize-logs.md) — скилл · 509 установок

Из того же набора: [elastic/agent-skills](https://affpapa.org/nevibecode/by/elastic/agent-skills.md) — 27 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
