diff --git a/vectordb_bench/frontend/components/check_results/filters.py b/vectordb_bench/frontend/components/check_results/filters.py index 310b1ffd1..bc426cce1 100644 --- a/vectordb_bench/frontend/components/check_results/filters.py +++ b/vectordb_bench/frontend/components/check_results/filters.py @@ -50,10 +50,15 @@ def getshownResults( # label_visibility="hidden", default=default_selected_task_labels or resultSelectOptions, ) + # Select every TestResult whose label is chosen, not just the first: more + # than one TestResult can share a task_label (e.g. the same engine re-run + # under one label), and index() would return only the first, silently + # dropping the rest from every results page. + selected = set(selectedResultSelectedOptions) selectedResult: list[CaseResult] = [] - for option in selectedResultSelectedOptions: - case_results = results[resultSelectOptions.index(option)].results - selectedResult += [r for r in case_results if case_results_filter(r)] + for option, result in zip(resultSelectOptions, results): + if option in selected: + selectedResult += [r for r in result.results if case_results_filter(r)] return selectedResult