47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
|
import warnings
|
|||
|
|
|||
|
from elasticsearch import Elasticsearch
|
|||
|
|
|||
|
from Config import Config
|
|||
|
|
|||
|
# 抑制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')
|
|||
|
|
|||
|
# 初始化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",
|
|||
|
"dims": 200, # embedding维度为200
|
|||
|
"index": True,
|
|||
|
"similarity": "l2_norm" # 使用L2距离
|
|||
|
},
|
|||
|
"user_input": {"type": "text"},
|
|||
|
"tags": {
|
|||
|
"type": "object",
|
|||
|
"properties": {
|
|||
|
"tags": {"type": "keyword"},
|
|||
|
"full_content": {"type": "text"}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
# 创建索引
|
|||
|
index_name = Config.ES_CONFIG['index_name']
|
|||
|
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结构已设置。")
|