Commands
Query
The query method is designed to retrieve the most similar vectors from the index, using the specific distance metric defined for your index. This method supports a variety of options to configure the query to your needs.
The dimension of the query vector must match the dimension of your index.
The score returned from query requests is a normalized value between 0 and 1, where 1 indicates the highest similarity and 0 the lowest regardless of the similarity function used.
Arguments
PayloadQueryCommandPayloadrequired
OptionsQueryCommandOptions
Response
ResponseQueryResultrequired
Using Vector
await index.query({ topK: 2, vector: [ ... ], includeMetadata: true, includeVectors: true}, { namespace: "my-namespace" })/*[ { id: '6345', score: 0.85, vector: [], metadata: { sentence: "Upstash is great." } }, { id: '1233', score: 0.75, vector: [], metadata: undefined },]*/Using Data
const results = await index.query({ data: "Movie about an adventure of a hobbit in a fantasy world.", includeVectors: true, includeMetadata: true, topK: 1, filter: "genre = 'fantasy' and title = 'Lord of the Rings'",});/*[ { id: "1234", vector: [0.1, 0.2, 0.3, 0.4, 0.5], score: 0.9999999, metadata: { title: "Lord of The Rings", genre: "fantasy", category: "classic", }, }]*/Improved Typechecking
type Metadata = { title: string, genre: 'sci-fi' | 'fantasy' | 'horror' | 'action'}const results = await index.query<Metadata>({ vector: [ ... // query embedding ], includeVectors: true, topK: 1, filter: "genre = 'fantasy' and title = 'Lord of the Rings'"})if (results[0].metadata) { // Since we passed the Metadata type parameter above, // we can interact with metadata fields without having to // do any typecasting. const { title, genre } = results[0].metadata; console.log(`The best match in fantasy was ${title}`)}