This commit is contained in:
2025-08-19 08:33:30 +08:00
parent 18a562c517
commit 8f916dfa96

View File

@@ -16,22 +16,14 @@ es = Elasticsearch(
verify_certs=False verify_certs=False
) )
# 2. 直接在代码中指定要查询的标签 # 2. 直接在代码中指定要查询的关键字
query_tag = ["MATH_1"] # 可以修改为其他需要的标签 query_keyword = "混凝土"
# 3. 构建查询条件 # 3. 构建查询条件
query = { query = {
"query": { "query": {
"bool": { "match": {
"should": [ "user_input": query_keyword
{
"terms": {
"tags.tags": query_tag
}
}
],
"minimum_should_match": 1
} }
}, },
"size": 1000 "size": 1000
@@ -39,41 +31,23 @@ query = {
# 4. 执行查询并处理结果 # 4. 执行查询并处理结果
try: try:
response = es.search(index="knowledge_base", body=query) results = es.search(index=ES_CONFIG['index_name'], body=query)
hits = response['hits']['hits'] print(f"查询关键字 '{query_keyword}' 结果:")
if results['hits']['hits']:
if not hits: for i, hit in enumerate(results['hits']['hits'], 1):
print(f"未找到标签为 '{query_tag}' 的数据。") doc = hit['_source']
else:
print(f"找到 {len(hits)} 条标签为 '{query_tag}' 的数据:")
for i, hit in enumerate(hits, 1):
print(f"{i}. ID: {hit['_id']}") print(f"{i}. ID: {hit['_id']}")
print(f" 内容: {hit['_source'].get('user_input', '')}") print(f" 标签: {doc['tags']['tags']}")
print(f" 标签: {hit['_source']['tags']['tags']}") print(f" 用户问题: {doc['user_input']}")
print(f" 时间: {doc['timestamp']}")
print(f" 向量: {doc['embedding'][:5]}...")
print("-" * 50) print("-" * 50)
else:
print(f"未找到包含 '{query_keyword}' 的数据。")
except Exception as e: except Exception as e:
print(f"查询执行失败,错误详情: {str(e)}") print(f"查询失败: {e}")
print(f"查询条件: {query}") print(f"查询条件: {query}")
if hasattr(e, 'info') and isinstance(e.info, dict): if hasattr(e, 'info') and isinstance(e.info, dict):
print(f"Elasticsearch错误详情: {e.info}") print(f"Elasticsearch错误详情: {e.info}")
if hasattr(e, 'status_code'): if hasattr(e, 'status_code'):
print(f"HTTP状态码: {e.status_code}") print(f"HTTP状态码: {e.status_code}")
print(f"查询出错: {str(e)}")
# 4. 执行查询
try:
results = es.search(index=ES_CONFIG['index_name'], body=query)
print(f"查询标签 '{query_tag}' 结果:")
if results['hits']['hits']:
for hit in results['hits']['hits']:
doc = hit['_source']
print(f"ID: {hit['_id']}")
print(f"标签: {doc['tags']['tags']}")
print(f"用户问题: {doc['user_input']}")
print(f"时间: {doc['timestamp']}")
print(f"向量: {doc['embedding'][:5]}...")
print("-" * 40)
else:
print(f"未找到标签为 '{query_tag}' 的数据。")
except Exception as e:
print(f"查询失败: {e}")