DataArt's AI solutions may need to retrieve the most relevant embedding vectors for a query. Implement an efficient exact top-k search using cosine similarity and a bounded min-heap.
Given a query vector, a list of candidate vectors, and an integer k, return the indices of the k candidates with the highest cosine similarity to the query. Return indices in descending similarity order. If similarities are equal, return the smaller index first.
Implement top_k_similar(vectors, query, k), where vectors is a list of equal-length numeric vectors, query is a numeric vector with the same dimension, and k is a positive integer. Return a list of at most k integer indices. A zero vector has cosine similarity 0 with every vector, including another zero vector.
def top_k_similar(vectors, query, k):