github.com/weaviate/weaviate@v1.24.6/usecases/classification/ref_meta.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package classification 13 14 import "github.com/weaviate/weaviate/entities/models" 15 16 // NeighborRefDistances include various distances about the winning and losing 17 // groups (knn) 18 type NeighborRefDistances struct { 19 ClosestOverallDistance float32 20 21 // Winning 22 ClosestWinningDistance float32 23 MeanWinningDistance float32 24 25 // Losing (optional) 26 MeanLosingDistance *float32 27 ClosestLosingDistance *float32 28 } 29 30 func (r NeighborRef) Meta() *models.ReferenceMetaClassification { 31 out := &models.ReferenceMetaClassification{ 32 OverallCount: int64(r.OverallCount), 33 WinningCount: int64(r.WinningCount), 34 LosingCount: int64(r.LosingCount), 35 ClosestOverallDistance: float64(r.Distances.ClosestOverallDistance), 36 WinningDistance: float64(r.Distances.MeanWinningDistance), // deprecated, remove in 0.23.0 37 MeanWinningDistance: float64(r.Distances.MeanWinningDistance), 38 ClosestWinningDistance: float64(r.Distances.ClosestWinningDistance), 39 } 40 41 if r.Distances.MeanLosingDistance != nil { 42 out.MeanLosingDistance = ptFloat64(float64(*r.Distances.MeanLosingDistance)) 43 out.LosingDistance = ptFloat64(float64(*r.Distances.MeanLosingDistance)) // deprecated 44 } 45 46 if r.Distances.ClosestLosingDistance != nil { 47 out.ClosestLosingDistance = ptFloat64(float64(*r.Distances.ClosestLosingDistance)) 48 } 49 50 return out 51 } 52 53 func ptFloat64(in float64) *float64 { 54 return &in 55 }