File tree 1 file changed +12
-4
lines changed
crates/search/src/searcher
1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -951,10 +951,18 @@ impl<RT: Runtime> SearcherImpl<RT> {
951
951
let num_terms_by_field = inverted_index_by_field
952
952
. into_iter ( )
953
953
. map ( |( field, inverted_index) | {
954
- let num_terms = inverted_index
955
- . total_num_tokens ( )
956
- . checked_sub ( deletion_tracker. num_terms_deleted ( field) )
957
- . context ( "num_terms underflow" ) ?;
954
+ let total_num_tokens = inverted_index. total_num_tokens ( ) ;
955
+ let num_terms_deleted = deletion_tracker. num_terms_deleted ( field) ;
956
+ let num_terms = total_num_tokens
957
+ . checked_sub ( num_terms_deleted)
958
+ // Tantivy's total_num_tokens count is only approximate, so we can't guarantee this won't underflow.
959
+ . unwrap_or_else ( || {
960
+ tracing:: warn!(
961
+ "num_terms underflowed for field {field:?}, subtracted num_terms_deleted: {num_terms_deleted} from \
962
+ total_num_tokens: {total_num_tokens}"
963
+ ) ;
964
+ 0
965
+ } ) ;
958
966
Ok ( ( field, num_terms) )
959
967
} )
960
968
. collect :: < anyhow:: Result < BTreeMap < _ , _ > > > ( ) ?;
You can’t perform that action at this time.
0 commit comments