pref: optimize add hit count query performance when dataset hit (#2436)

This commit is contained in:
takatost 2024-02-12 13:50:43 +08:00 committed by GitHub
parent e6d22fc3a0
commit e1045f01c6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -42,12 +42,16 @@ class DatasetIndexToolCallbackHandler:
def on_tool_end(self, documents: list[Document]) -> None:
"""Handle tool end."""
for document in documents:
doc_id = document.metadata['doc_id']
query = db.session.query(DocumentSegment).filter(
DocumentSegment.index_node_id == document.metadata['doc_id']
)
# if 'dataset_id' in document.metadata:
if 'dataset_id' in document.metadata:
query = query.filter(DocumentSegment.dataset_id == document.metadata['dataset_id'])
# add hit count to document segment
db.session.query(DocumentSegment).filter(
DocumentSegment.index_node_id == doc_id
).update(
query.update(
{DocumentSegment.hit_count: DocumentSegment.hit_count + 1},
synchronize_session=False
)