@@ -24,7 +24,6 @@ import (
2424 "sort"
2525
2626 "github.com/blevesearch/bleve/v2/document"
27- "github.com/blevesearch/bleve/v2/mapping"
2827 "github.com/blevesearch/bleve/v2/search"
2928 "github.com/blevesearch/bleve/v2/search/collector"
3029 "github.com/blevesearch/bleve/v2/search/query"
@@ -452,10 +451,7 @@ func (i *indexImpl) runKnnCollector(ctx context.Context, req *SearchRequest, rea
452451 err = serr
453452 }
454453 }()
455- knnCollector , err := i .buildKNNCollector (ctx , KNNQuery , reader , kArray , sumOfK )
456- if err != nil {
457- return nil , err
458- }
454+ knnCollector := collector .NewKNNCollector (kArray , sumOfK )
459455 err = knnCollector .Collect (ctx , knnSearcher , reader )
460456 if err != nil {
461457 return nil , err
@@ -485,9 +481,6 @@ func setKnnHitsInCollector(knnHits []*search.DocumentMatch, coll *collector.TopN
485481 ftsMatch .Score += knnMatch .Score
486482 // Combine the FTS explanation with the KNN explanation, if present
487483 ftsMatch .Expl .MergeWith (knnMatch .Expl )
488- // Add the Descendants from the KNN match to the FTS match, deduplicating them on the way
489- // The Descendants of a DocumentMatch is always sorted, and we must maintain that invariant
490- ftsMatch .Descendants = search .SortedUnion (ftsMatch .Descendants , knnMatch .Descendants )
491484 }
492485 coll .SetKNNHits (knnHits , search .HybridMergeCallbackFn (mergeFn ))
493486 }
@@ -688,26 +681,3 @@ func (r *rescorer) restoreKnnRequest() {
688681 r .req .KNN [i ].Boost = & b
689682 }
690683}
691-
692- func (i * indexImpl ) buildKNNCollector (ctx context.Context , KNNQuery query.Query , reader index.IndexReader , kArray []int64 , sumOfK int64 ) (* collector.KNNCollector , error ) {
693- // check if we are in nested mode
694- if nestedMode , ok := ctx .Value (search .NestedSearchKey ).(bool ); ok && nestedMode {
695- // get the nested reader from the index reader
696- if nr , ok := reader .(index.NestedReader ); ok {
697- // check if the KNN query intersects with the nested mapping
698- if nm , ok := i .m .(mapping.NestedMapping ); ok {
699- var fs search.FieldSet
700- var err error
701- fs , err = query .ExtractFields (KNNQuery , i .m , fs )
702- if err != nil {
703- return nil , err
704- }
705- if nm .IntersectsPrefix (fs ) {
706- return collector .NewNestedKNNCollector (kArray , sumOfK , nr ), nil
707- }
708- }
709- }
710- }
711-
712- return collector .NewKNNCollector (kArray , sumOfK ), nil
713- }
0 commit comments