INNER CODE UNIT · Swift
search
ZachNagengast/similarity-search-kit · Sources/SimilaritySearchKit/Core/Index/SimilarityIndex.swift:151
public func search(_ query: String, top resultCount: Int? = nil, metric: DistanceMetricProtocol? = nil) async -> [SearchResult] {
let resultCount = resultCount ?? 5
guard let queryEmbedding = await indexModel.encode(sentence: query) else {
print("Failed to generate query embedding for '\(query)'.")
return []
}
var indexIds: [String] = []
var indexEmbeddings: [[Float]] = []
for item in indexItems {
indexIds.append(item.id)
indexEmbeddings.append(item.embedding)
}
// Calculate distances and find nearest neighbors
if let customMetric = metric {
// Allow custom metrics at time of query