diff --git a/dsSchoolBuddy/ElasticSearch/T5_SelectByKeyWord.py b/dsSchoolBuddy/ElasticSearch/T5_SelectByKeyWord.py index 8cd286f2..af353c63 100644 --- a/dsSchoolBuddy/ElasticSearch/T5_SelectByKeyWord.py +++ b/dsSchoolBuddy/ElasticSearch/T5_SelectByKeyWord.py @@ -1,53 +1,28 @@ -from elasticsearch import Elasticsearch -import warnings from Config import Config -from Config.Config import ES_CONFIG -import urllib3 - -# 抑制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') +from ElasticSearch.Utils.EsSearchUtil import EsSearchUtil -# 1. 初始化Elasticsearch连接 -es = Elasticsearch( - hosts=Config.ES_CONFIG['hosts'], - basic_auth=Config.ES_CONFIG['basic_auth'], - verify_certs=False -) +# 1. 创建EsSearchUtil实例(已封装连接池) +search_util = EsSearchUtil(Config.ES_CONFIG) # 2. 直接在代码中指定要查询的关键字 query_keyword = "混凝土" -# 3. 构建查询条件 -query = { - "query": { - "match": { - "user_input": query_keyword - } - }, - "size": 1000 -} - -# 4. 执行查询并处理结果 +# 3. 执行查询并处理结果 try: - results = es.search(index=ES_CONFIG['index_name'], body=query) + # 使用连接池进行查询 + results = search_util.text_search(query_keyword, size=1000) print(f"查询关键字 '{query_keyword}' 结果:") if results['hits']['hits']: for i, hit in enumerate(results['hits']['hits'], 1): doc = hit['_source'] print(f"{i}. ID: {hit['_id']}") - print(f" 标签: {doc['tags']['tags']}") - print(f" 用户问题: {doc['user_input']}") - print(f" 时间: {doc['timestamp']}") - #print(f" 向量: {doc['embedding'][:5]}...") + print(f" 标签: {doc['tags']['tags'] if 'tags' in doc and 'tags' in doc['tags'] else '无'}") + print(f" 用户问题: {doc['user_input'] if 'user_input' in doc else '无'}") + print(f" 时间: {doc['timestamp'] if 'timestamp' in doc else '无'}") print("-" * 50) else: print(f"未找到包含 '{query_keyword}' 的数据。") except Exception as e: print(f"查询失败: {e}") - print(f"查询条件: {query}") - if hasattr(e, 'info') and isinstance(e.info, dict): - print(f"Elasticsearch错误详情: {e.info}") - if hasattr(e, 'status_code'): - print(f"HTTP状态码: {e.status_code}") \ No newline at end of file + print(f"查询关键字: {query_keyword}") \ No newline at end of file diff --git a/dsSchoolBuddy/ElasticSearch/Utils/__pycache__/EsSearchUtil.cpython-310.pyc b/dsSchoolBuddy/ElasticSearch/Utils/__pycache__/EsSearchUtil.cpython-310.pyc index 77093dc8..8db14693 100644 Binary files a/dsSchoolBuddy/ElasticSearch/Utils/__pycache__/EsSearchUtil.cpython-310.pyc and b/dsSchoolBuddy/ElasticSearch/Utils/__pycache__/EsSearchUtil.cpython-310.pyc differ