Contents
一、根据集合关键字扫描出集合名字
脚本位置:/opt/soft/qdrant_tool/bin
# cat list_qdrant_collection.sh
#!/bin/bash
#要扫描匹配的集合地址
qdrant_cluster="10.100.x.x:6333"
#要扫描匹配的集合关键字
pkey_list=("^rag_knowledge_qa.*_v2$" "^rag_knowledge_file.*_v2$" "^rag_knowledge_text.*_v2$")
function help() {
echo "the shell script if you execute the error, check the qdrant service."
}
function collection_name_list() {
for pkey in ${pkey_list[@]}
do
echo "开始执行扫描集合:$pkey"
curl -XGET http://$qdrant_cluster/collections -s | jq -r '.result.collections[].name' | grep -E "$pkey" >> /opt/soft/qdrant_tool/logs/collection_name_list.txt
done
}
if [ $# -eq 0 ]; then
collection_name_list
else
help
fi
说明:
^rag_knowledge_qa.*_v2$ 指的是匹配精确匹配rag_knowledge_qa开头,_v2结尾的关键字
二、根据扫描出集合名字给集合添加索引
脚本位置:/opt/soft/qdrant_tool/bin
# cat update_qdrant_collection.sh
#!/bin/bash
# 定义变量
QDRANT_HOST="192.168.x.x:6333" # Qdrant集群主地址(IP:PORT)
#QDRANT_HOST="192.168.x.x:6333" # Qdrant集群备地址(IP:PORT)
FIELD_NAME="meta_tags_kv" # 要索引的字段
FIELD_SCHEMA="keyword" # 字段类型
COLLECTION_FILE="/opt/soft/qdrant_tool/logs/collection_name_list.txt" # 集合名称列表文件
COLLECTION_LOG="/opt/soft/qdrant_tool/logs/update_collection_name.log" # 集合更新信息
# 检查文件是否存在
if [ ! -f "$COLLECTION_FILE" ]; then
echo "错误:集合名称列表文件不存在 -> $COLLECTION_FILE"
exit 1
fi
# 使用 while 循环逐行读取文件中的集合名称
while IFS= read -r COLLECTION_NAME; do
# 跳过空行
if [ -z "$COLLECTION_NAME" ]; then
continue
fi
echo "`date +%Y-%m-%d-%H:%M:%S` ${QDRANT_HOST} 正在为集合 '${COLLECTION_NAME}' 创建索引..." >> $COLLECTION_LOG
# 发送请求并捕获状态码
http_code=$(curl -s -w "%{http_code}" -X PUT "http://${QDRANT_HOST}/collections/${COLLECTION_NAME}/index" \
-H "Content-Type: application/json" \
-d '{
"field_name": "'${FIELD_NAME}'",
"field_schema": "'${FIELD_SCHEMA}'"
}' -o /dev/null)
# 根据状态码输出结果
if [ "$http_code" -eq 200 ]; then
echo "`date +%Y-%m-%d-%H:%M:%S` ${QDRANT_HOST} 索引创建成功: ${COLLECTION_NAME} (HTTP 200)" >> $COLLECTION_LOG
else
echo "`date +%Y-%m-%d-%H:%M:%S` ${QDRANT_HOST} 索引创建失败: ${COLLECTION_NAME} (HTTP ${http_code})" >> $COLLECTION_LOG
fi
done < "$COLLECTION_FILE"
- 本文固定链接: http://www.jiagou.cc/1583/
- 转载请注明: 摘星怪 于 架构迷 发表
