@@ -1168,18 +1168,31 @@ def search_after_result(self, search_result, sorted_fields):
11681168 search_dict ["order_by" ] = order_by
11691169
11701170 index_set = self .index_info_list [0 ]["index_set_obj" ]
1171- search_after_size = len (search_result ["list" ])
1172- result_size = search_after_size
1171+ result_size = len (search_result ["list" ])
11731172 max_result_window = index_set .result_window
1173+ max_export_count = max (index_set .max_async_count , MAX_ASYNC_COUNT )
11741174 # 参数补充
11751175 search_dict ["from" ] = self .search_params ["begin" ]
11761176 search_dict ["limit" ] = max_result_window
11771177 search_dict ["is_search_after" ] = True
1178- while search_after_size >= max_result_window and result_size < max (index_set .max_async_count , MAX_ASYNC_COUNT ):
1179- search_dict ["result_table_options" ] = search_result ["result_table_options" ]
1178+ while result_size < max_export_count :
1179+ result_table_options = {
1180+ key : value
1181+ for key , value in search_result .get ("result_table_options" , {}).items ()
1182+ if value .get ("search_after" )
1183+ }
1184+
1185+ if not result_table_options :
1186+ break
1187+
1188+ search_dict ["result_table_options" ] = result_table_options
11801189 search_result = UnifyQueryApi .query_ts_raw (search_dict )
1181- search_after_size = len (search_result ["list" ])
1182- result_size += search_after_size
1190+ new_result_size = len (search_result .get ("list" , []))
1191+
1192+ if new_result_size == 0 :
1193+ break
1194+
1195+ result_size += new_result_size
11831196 yield self ._deal_query_result (search_result )
11841197
11851198 def export_data (self , is_quick_export : bool = False ):
0 commit comments