Skip to content

Commit 895e2b9

Browse files
committed
fix: 日志下载数据重复问题 #1010158081152756783
1 parent 6608528 commit 895e2b9

File tree

1 file changed

+19
-6
lines changed
  • bklog/apps/log_unifyquery/handler

1 file changed

+19
-6
lines changed

bklog/apps/log_unifyquery/handler/base.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)