Skip to main content

GetSimN

The GetSimN request performs a similarity search.
It retrieves the N closest vectors to a given query vector.

  • Input:

    • store: store name.

    • search_input: the query vector (StoreKey).

    • closest_n: number of results to return (> 0).

    • algorithm: similarity metric (e.g. CosineSimilarity, EuclideanDistance).

  • Behavior: The server compares the query vector with stored vectors using the chosen similarity metric.

  • Response: A list of entries with:

    • key (vector),

    • value (metadata),

    • score (similarity measure).

Click to expand source code
import asyncio
from grpclib.client import Channel
from ahnlich_client_py.grpc.services.db_service import DbServiceStub
from ahnlich_client_py.grpc.db import query as db_query
from ahnlich_client_py.grpc import keyval
from ahnlich_client_py.grpc.algorithm.algorithms import Algorithm


async def get_simn():
async with Channel(host="127.0.0.1", port=1369) as channel:
client = DbServiceStub(channel)


search_key = keyval.StoreKey(key=[5.0, 5.1, 3.4, 5.1, 4.9])


response = await client.get_sim_n(
db_query.GetSimN(
store="test store",
search_input=search_key,
closest_n=3,
algorithm=Algorithm.CosineSimilarity
)
)

print(response.entries) # [(key, value, score), ...]


if __name__ == "__main__":
asyncio.run(get_simn())