|
|
@@ -117,12 +117,25 @@ def query_keyword_content_results(keywords):
|
|
|
# 构建关键字ID到关键词的映射
|
|
|
keyword_id_to_word = {data.id: data.keyword for data in keyword_dict.values()}
|
|
|
|
|
|
- # 构建结果
|
|
|
+ # 按关键词分组内容数据
|
|
|
+ keyword_to_content = {}
|
|
|
+
|
|
|
for relation in keyword_content_relations:
|
|
|
if relation.content_chunk_id in content_map:
|
|
|
content_data = content_map[relation.content_chunk_id]
|
|
|
+ keyword = keyword_id_to_word.get(relation.keyword_id, '未知关键词')
|
|
|
+ if keyword not in keyword_to_content:
|
|
|
+ keyword_to_content[keyword] = []
|
|
|
+ keyword_to_content[keyword].append(content_data)
|
|
|
+
|
|
|
+ # 对每个关键词的内容按ID倒排并取前5条
|
|
|
+ for keyword, content_list in keyword_to_content.items():
|
|
|
+ # 根据 ID 倒排,取前 5 条记录
|
|
|
+ sorted_content_list = sorted(content_list, key=lambda x: x.id, reverse=True)[:5]
|
|
|
+
|
|
|
+ for content_data in sorted_content_list:
|
|
|
res.append({
|
|
|
- 'keyword': keyword_id_to_word.get(relation.keyword_id, '未知关键词'),
|
|
|
+ 'keyword': keyword,
|
|
|
'content': content_data.text,
|
|
|
'content_summary': content_data.summary
|
|
|
})
|