#!/bin/bash # Создание ES индекса с маппингом для документов # Запускать после старта контейнера Elasticsearch set -e ES_URL="${ELASTICSEARCH_URL:-http://localhost:9200}" INDEX_NAME="documents" MAPPINGS_FILE="$(dirname "$0")/mappings.json" echo "Ожидание готовности Elasticsearch..." until curl -s "$ES_URL/_cluster/health" | grep -qv '"status":"red"'; do sleep 2 done echo "Elasticsearch готов." # Проверить существование индекса if curl -s -o /dev/null -w "%{http_code}" "$ES_URL/$INDEX_NAME" | grep -q "200"; then echo "Индекс '$INDEX_NAME' уже существует." read -p "Пересоздать? (y/N): " confirm if [[ $confirm != "y" ]]; then echo "Пропускаем." exit 0 fi echo "Удаление старого индекса..." curl -s -X DELETE "$ES_URL/$INDEX_NAME" echo "" fi echo "Создание индекса '$INDEX_NAME'..." curl -s -X PUT "$ES_URL/$INDEX_NAME" \ -H "Content-Type: application/json" \ -d @"$MAPPINGS_FILE" | python3 -m json.tool echo "" echo "Индекс '$INDEX_NAME' создан."