Blame view

scripts/create_tenant_index.sh 1.99 KB
80f87e57   tangwang   多语言索引修改 对应的 索引创建、...
1
2
3
4
5
6
7
  #!/bin/bash
  
  # 为租户创建 ES 索引
  # 用法: ./scripts/create_tenant_index.sh <tenant_id>
  
  # 切换到项目根目录
  cd "$(dirname "$0")/.."
c7e80cc2   tangwang   新的 .env 管理机制如下:
8
  PROJECT_ROOT="$(pwd)"
80f87e57   tangwang   多语言索引修改 对应的 索引创建、...
9
10
  
  # 加载 .env 文件(如果存在)
c7e80cc2   tangwang   新的 .env 管理机制如下:
11
12
13
  # shellcheck source=scripts/lib/load_env.sh
  source "${PROJECT_ROOT}/scripts/lib/load_env.sh"
  load_env_file "${PROJECT_ROOT}/.env"
80f87e57   tangwang   多语言索引修改 对应的 索引创建、...
14
15
16
17
  
  ES_HOST="${ES_HOST:-http://localhost:9200}"
  ES_USERNAME="${ES_USERNAME:-}"
  ES_PASSWORD="${ES_PASSWORD:-}"
648cb4c2   tangwang   ES docs
18
  ES_INDEX_NAMESPACE="${ES_INDEX_NAMESPACE:-}"
80f87e57   tangwang   多语言索引修改 对应的 索引创建、...
19
20
21
22
23
24
25
26
27
  
  # 检查命令行参数
  if [ $# -eq 0 ]; then
      echo "用法: $0 <tenant_id>"
      echo "示例: $0 170"
      exit 1
  fi
  
  TENANT_ID="$1"
648cb4c2   tangwang   ES docs
28
29
  BASE_INDEX_NAME="search_products_tenant_${TENANT_ID}"
  ES_INDEX="${ES_INDEX_NAMESPACE}${BASE_INDEX_NAME}"
80f87e57   tangwang   多语言索引修改 对应的 索引创建、...
30
31
32
33
34
35
36
37
38
39
40
  MAPPING_FILE="mappings/search_products.json"
  
  # 检查 mapping 文件是否存在
  if [ ! -f "$MAPPING_FILE" ]; then
      echo "错误: mapping 文件不存在: $MAPPING_FILE"
      exit 1
  fi
  
  # 手动确认
  echo "创建索引前,将删除已有的同名索引。"
  echo "索引名称: $ES_INDEX"
648cb4c2   tangwang   ES docs
41
  echo "(注意:包含环境前缀 ES_INDEX_NAMESPACE='${ES_INDEX_NAMESPACE}')"
80f87e57   tangwang   多语言索引修改 对应的 索引创建、...
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
  echo "请输入索引名称 '$ES_INDEX' 来确认:"
  read -r user_input
  
  if [ "$user_input" != "$ES_INDEX" ]; then
      echo "确认失败,索引名称不匹配。退出操作。"
      exit 1
  fi
  
  echo "确认成功,继续创建索引..."
  
  # 构建 curl 认证参数
  AUTH_PARAM=""
  if [ -n "$ES_USERNAME" ] && [ -n "$ES_PASSWORD" ]; then
      AUTH_PARAM="-u ${ES_USERNAME}:${ES_PASSWORD}"
  fi
  
  # 删除已存在的索引(如果存在)
  echo
  echo "删除索引: $ES_INDEX"
  echo
  curl -X DELETE "${ES_HOST}/${ES_INDEX}" $AUTH_PARAM -s -o /dev/null -w "HTTP状态码: %{http_code}\n"
cc11ae04   tangwang   cnclip
63
  
5a01af3c   tangwang   多模态hashkey调整:1. 加...
64
  
80f87e57   tangwang   多语言索引修改 对应的 索引创建、...
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  echo
  echo "创建索引: $ES_INDEX"
  echo
  
  # 创建索引(使用 mapping 文件)
  curl -X PUT "${ES_HOST}/${ES_INDEX}" \
      -H "Content-Type: application/json" \
      $AUTH_PARAM \
      -d @"${MAPPING_FILE}" \
      -w "\nHTTP状态码: %{http_code}\n"
  
  echo
  echo "完成!"
  echo "提示: 请调用 /indexer/reindex 接口导入数据"