You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.4 KiB

4 weeks ago
import warnings
4 weeks ago
from elasticsearch import Elasticsearch
from Config import Config
4 weeks ago
# 抑制HTTPS相关警告
warnings.filterwarnings('ignore', message='Connecting to .* using TLS with verify_certs=False is insecure')
warnings.filterwarnings('ignore', message='Unverified HTTPS request is being made to host')
4 weeks ago
# 初始化ES连接
es = Elasticsearch(
hosts=Config.ES_CONFIG['hosts'],
basic_auth=Config.ES_CONFIG['basic_auth'],
verify_certs=False
)
# 定义mapping结构
mapping = {
"mappings": {
"properties": {
"embedding": {
"type": "dense_vector",
4 weeks ago
"dims": 200, # embedding维度为200
4 weeks ago
"index": True,
"similarity": "l2_norm" # 使用L2距离
},
"user_input": {"type": "text"},
"tags": {
"type": "object",
"properties": {
4 weeks ago
"tags": {"type": "keyword"},
4 weeks ago
"full_content": {"type": "text"}
}
}
}
}
}
# 创建索引
4 weeks ago
index_name = Config.ES_CONFIG['index_name']
4 weeks ago
if es.indices.exists(index=index_name):
es.indices.delete(index=index_name)
print(f"删除已存在的索引 '{index_name}'")
es.indices.create(index=index_name, body=mapping)
print(f"索引 '{index_name}' 创建成功mapping结构已设置。")