A vector query finds the k nearest vectors to a query vector, as measured by a similarity metric.

Parameters

ParameterDescriptionTypeRequired
fieldThe name of the vector field to search againststring
queryVectorQuery vectorfloat[]
kNumber of nearest neighbors to return as top docsinteger
filterQuery to filter the documents that can matchobject

Examples

Simple vector query

{
  "knn": {
    "field": "example_vector_field",
    "queryVector": [
        0.030255454,
        -0.058824085,
        -0.065448694,
        -0.03987034,
        0.060786933,
        -0.15469691,
        -0.043918714,
        0.057719983,
        0.054530356,
        0.007080819
    ],
    "k": 5
  }
}

Multi-fields vector query

You can search across multiple vector fields simultaneously by wrapping multiple kNN objects in a boolean query. This is useful when you have different types of embeddings (e.g., text embedding and image embedding) and want to combine their results.
{
  "bool": [
      {
        "knn": {
          "field": "text_embedding",
          "queryVector": [
            0.030255454,
            -0.058824085,
            -0.065448694,
            -0.03987034,
            0.060786933,
            -0.15469691,
            -0.043918714,
            0.057719983,
            0.054530356,
            0.007080819
          ],
          "k": 10
        }
      },
      {
        "knn": {
          "field": "image_embedding", 
          "queryVector": [
            0.125434521,
            -0.087654321,
            0.045123789,
            -0.156789012,
            0.098765432,
            0.034567890,
            -0.123456789,
            0.076543210,
            -0.089012345,
            0.112345678
          ],
          "k": 10
        }
      }
  ]
}

Vector query with filter query

An example vector query with a filter for better performance and relavance:
{
  "knn": {
    "filter" : {
      "queryString": {
          "query": "node_type:NODE AND \"https://example.com/books/5514276\"",
          "defaultField": "metadata.url"
      }
    },
    "field": "example_vector_field",
    "queryVector": [
        0.030255454,
        -0.058824085,
        -0.065448694,
        -0.03987034,
        0.060786933,
        -0.15469691,
        -0.043918714,
        0.057719983,
        0.054530356,
        0.007080819
    ],
    "k": 5
  }
}