This commit is contained in:
2025-08-19 09:04:35 +08:00
parent c3ae7f8798
commit d58e02183d
3 changed files with 55 additions and 1 deletions

View File

@@ -0,0 +1,54 @@
import logging
from ElasticSearch.Utils.ElasticsearchConnectionPool import ElasticsearchConnectionPool
# 初始化日志
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
class EsSearchUtil:
def __init__(self, es_config):
"""
初始化Elasticsearch搜索工具
:param es_config: Elasticsearch配置字典包含hosts, username, password, index_name等
"""
self.es_config = es_config
# 初始化连接池
self.es_pool = ElasticsearchConnectionPool(
hosts=es_config['hosts'],
basic_auth=es_config['basic_auth'],
verify_certs=es_config.get('verify_certs', False),
max_connections=50
)
self.index_name = es_config['index_name']
logger.info(f"EsSearchUtil初始化成功索引名称: {self.index_name}")
def text_search(self, query, size=10):
# 从连接池获取连接
conn = self.es_pool.get_connection()
try:
# 使用连接执行搜索
result = conn.search(
index=self.es_config['index_name'],
query={"match": {"user_input": query}},
size=size
)
return result
except Exception as e:
logger.error(f"文本搜索失败: {str(e)}")
raise
finally:
# 释放连接回连接池
self.es_pool.release_connection(conn)
def hybrid_search(self, query, size=10):
# 注意混合搜索方法需要更新以使用火山引擎API计算向量
# 此处保留方法框架具体实现需要根据火山引擎API进行调整
pass
# 以下功能已删除建议通过火山引擎API实现向量计算
# 1. 本地模型加载和相关配置 (KeyedVectors)
# 2. text_to_embedding方法 (基于本地模型的向量计算)
# 3. vector_search方法 (使用本地模型向量的搜索)

View File

@@ -15,7 +15,7 @@ from starlette.responses import StreamingResponse
from starlette.staticfiles import StaticFiles from starlette.staticfiles import StaticFiles
from Config import Config from Config import Config
from Util.EsSearchUtil import * from ElasticSearch.Utils.EsSearchUtil import *
from Util.MySQLUtil import init_mysql_pool from Util.MySQLUtil import init_mysql_pool
# 初始化日志 # 初始化日志