mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
perf: add get_all_kb_doc_count func to simplify kb.doc_num updating (#10169)
### What problem does this PR solve? Add get_all_kb_doc_count func to simplify kb.doc_num updating. ### Type of change - [x] Performance Improvement
This commit is contained in:
@ -144,8 +144,9 @@ def init_llm_factory():
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
break
|
break
|
||||||
|
doc_count = DocumentService.get_all_kb_doc_count()
|
||||||
for kb_id in KnowledgebaseService.get_all_ids():
|
for kb_id in KnowledgebaseService.get_all_ids():
|
||||||
KnowledgebaseService.update_document_number_in_init(kb_id=kb_id, doc_num=DocumentService.get_kb_doc_count(kb_id))
|
KnowledgebaseService.update_document_number_in_init(kb_id=kb_id, doc_num=doc_count.get(kb_id, 0))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -660,8 +660,16 @@ class DocumentService(CommonService):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@DB.connection_context()
|
@DB.connection_context()
|
||||||
def get_kb_doc_count(cls, kb_id):
|
def get_kb_doc_count(cls, kb_id):
|
||||||
return len(cls.model.select(cls.model.id).where(
|
return cls.model.select().where(cls.model.kb_id == kb_id).count()
|
||||||
cls.model.kb_id == kb_id).dicts())
|
|
||||||
|
@classmethod
|
||||||
|
@DB.connection_context()
|
||||||
|
def get_all_kb_doc_count(cls):
|
||||||
|
result = {}
|
||||||
|
rows = cls.model.select(cls.model.kb_id, fn.COUNT(cls.model.id).alias('count')).group_by(cls.model.kb_id)
|
||||||
|
for row in rows:
|
||||||
|
result[row.kb_id] = row.count
|
||||||
|
return result
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@DB.connection_context()
|
@DB.connection_context()
|
||||||
|
|||||||
Reference in New Issue
Block a user