This commit is contained in:
2025-08-19 13:42:40 +08:00
parent 28f51a8e25
commit e41743643f
2 changed files with 10 additions and 10 deletions

View File

@@ -614,25 +614,25 @@ class EsSearchUtil:
seg_set = set(seg_list)
# 检查是否已有学生信息如果没有则从ES加载
if user_id not in student_info:
if user_id not in self.student_info:
# 从ES加载学生信息
info_from_es = self.get_student_info_from_es(user_id)
if info_from_es:
student_info[user_id] = info_from_es
self.student_info[user_id] = info_from_es
logger.info(f"从ES加载用户 {user_id} 的信息: {info_from_es}")
else:
student_info[user_id] = {}
self.student_info[user_id] = {}
# 提取并更新年级信息
grade_found = False
for grade, keywords in GRADE_KEYWORDS.items():
for grade, keywords in self.GRADE_KEYWORDS.items():
for keyword in keywords:
if keyword in seg_set:
if 'grade' not in student_info[user_id] or student_info[user_id]['grade'] != grade:
student_info[user_id]['grade'] = grade
if 'grade' not in self.student_info[user_id] or self.student_info[user_id]['grade'] != grade:
self.student_info[user_id]['grade'] = grade
logger.info(f"提取到用户 {user_id} 的年级信息: {grade}")
# 保存到ES
self.save_student_info_to_es(user_id, student_info[user_id])
self.save_student_info_to_es(user_id, self.student_info[user_id])
grade_found = True
break
if grade_found:
@@ -646,11 +646,11 @@ class EsSearchUtil:
if match:
grade_num = match.group(1)
grade = f"{grade_num}年级"
if 'grade' not in student_info[user_id] or student_info[user_id]['grade'] != grade:
student_info[user_id]['grade'] = grade
if 'grade' not in self.student_info[user_id] or self.student_info[user_id]['grade'] != grade:
self.student_info[user_id]['grade'] = grade
logger.info(f"通过正则提取到用户 {user_id} 的年级信息: {grade}")
# 保存到ES
self.save_student_info_to_es(user_id, student_info[user_id])
self.save_student_info_to_es(user_id, self.student_info[user_id])
except Exception as e:
logger.error(f"提取学生信息失败: {str(e)}", exc_info=True)