mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
chore: update document deletion logic to handle paragraph IDs and related mappings
--bug=1063248 --user=刘瑞斌 【知识库】删除文档时,分段与问题的关联关系没有清除 https://www.tapd.cn/62980211/s/1793500
This commit is contained in:
parent
d636d6ea7a
commit
5b46e7d730
|
|
@ -683,10 +683,11 @@ class DocumentSerializers(serializers.Serializer):
|
|||
]
|
||||
QuerySet(File).filter(id__in=source_file_ids).delete()
|
||||
QuerySet(File).filter(source_id=document_id, source_type=FileSourceType.DOCUMENT).delete()
|
||||
paragraph_ids = QuerySet(model=Paragraph).filter(document_id=document_id).values_list("id", flat=True)
|
||||
# 删除问题
|
||||
delete_problems_and_mappings(paragraph_ids)
|
||||
# 删除段落
|
||||
QuerySet(model=Paragraph).filter(document_id=document_id).delete()
|
||||
# 删除问题
|
||||
delete_problems_and_mappings([document_id])
|
||||
# 删除向量库
|
||||
delete_embedding_by_document(document_id)
|
||||
QuerySet(model=DocumentTag).filter(document_id=document_id).delete()
|
||||
|
|
@ -1217,9 +1218,12 @@ class DocumentSerializers(serializers.Serializer):
|
|||
Document.objects.filter(id__in=document_id_list).values("meta")]
|
||||
QuerySet(File).filter(id__in=source_file_ids).delete()
|
||||
QuerySet(Document).filter(id__in=document_id_list).delete()
|
||||
QuerySet(Paragraph).filter(document_id__in=document_id_list).delete()
|
||||
QuerySet(DocumentTag).filter(document_id__in=document_id_list).delete()
|
||||
delete_problems_and_mappings(document_id_list)
|
||||
paragraph_ids = QuerySet(Paragraph).filter(document_id__in=document_id_list).values_list("id", flat=True)
|
||||
# 删除问题关系
|
||||
delete_problems_and_mappings(paragraph_ids)
|
||||
# 删除段落
|
||||
QuerySet(Paragraph).filter(document_id__in=document_id_list).delete()
|
||||
# 删除向量库
|
||||
delete_embedding_by_document_list(document_id_list)
|
||||
return True
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
SELECT
|
||||
problem.*,
|
||||
(SELECT "count"("id") FROM "problem_paragraph_mapping" WHERE problem_id="problem"."id") as "paragraph_count"
|
||||
FROM
|
||||
problem problem
|
||||
SELECT problem.*,
|
||||
(SELECT COUNT(ppm.id)
|
||||
FROM problem_paragraph_mapping ppm
|
||||
INNER JOIN paragraph p ON ppm.paragraph_id = p.id
|
||||
WHERE ppm.problem_id = problem.id) AS "paragraph_count"
|
||||
FROM problem problem
|
||||
|
|
|
|||
Loading…
Reference in New Issue