diff --git a/api/controllers/console/datasets/datasets_segments.py b/api/controllers/console/datasets/datasets_segments.py index 2c77a44c97..ffa01cbb48 100644 --- a/api/controllers/console/datasets/datasets_segments.py +++ b/api/controllers/console/datasets/datasets_segments.py @@ -78,12 +78,14 @@ class DatasetDocumentSegmentListApi(Resource): parser.add_argument('hit_count_gte', type=int, default=None, location='args') parser.add_argument('enabled', type=str, default='all', location='args') + parser.add_argument('keyword', type=str, default=None, location='args') args = parser.parse_args() last_id = args['last_id'] limit = min(args['limit'], 100) status_list = args['status'] hit_count_gte = args['hit_count_gte'] + keyword = args['keyword'] query = DocumentSegment.query.filter( DocumentSegment.document_id == str(document_id), @@ -104,6 +106,9 @@ class DatasetDocumentSegmentListApi(Resource): if hit_count_gte is not None: query = query.filter(DocumentSegment.hit_count >= hit_count_gte) + if keyword: + query = query.where(DocumentSegment.content.ilike(f'%{keyword}%')) + if args['enabled'].lower() != 'all': if args['enabled'].lower() == 'true': query = query.filter(DocumentSegment.enabled == True)