From 0048067b6747557bb6afe1e529c3c76302cf778a Mon Sep 17 00:00:00 2001 From: Liam Thompson Date: Fri, 22 Aug 2025 10:33:28 +0200 Subject: [PATCH 1/2] [DOCS] Fix versioning info in KNN nested docs --- .../query-dsl/query-dsl-knn-query.md | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/docs/reference/query-languages/query-dsl/query-dsl-knn-query.md b/docs/reference/query-languages/query-dsl/query-dsl-knn-query.md index 4a73e93ccf365..d603c0711cd11 100644 --- a/docs/reference/query-languages/query-dsl/query-dsl-knn-query.md +++ b/docs/reference/query-languages/query-dsl/query-dsl-knn-query.md @@ -200,22 +200,47 @@ POST my-image-index/_search ## Knn query inside a nested query [knn-query-with-nested-query] -`knn` query can be used inside a nested query. The behaviour here is similar to [top level nested kNN search](docs-content://solutions/search/vector/knn.md#nested-knn-search): +The `knn` query can be used inside a nested query. The behaviour here is similar to [top level nested kNN search](docs-content://solutions/search/vector/knn.md#nested-knn-search): -* kNN search over nested dense_vectors diversifies the top results over the top-level document +* kNN search over nested `dense_vector`s diversifies the top results over the top-level document * `filter` both over the top-level document metadata and `nested` is supported and acts as a pre-filter -::::{note} -To ensure correct results: each individual filter must be either over -the top-level metadata or `nested` metadata. However, a single knn query -supports multiple filters, where some filters can be over the top-level -metadata and some over nested. -:::: +To ensure correct results: each individual filter must be either over: + +- Top-level metadata +- `nested` metadata {applies_to}`stack: ga 9.2` + :::{note} + A single knn query supports multiple filters, where some filters can be over the top-level metadata and some over nested. + ::: +### Basic nested knn search -Below is a sample query with filter over nested metadata. -For scoring parents' documents, this query only considers vectors that -have "paragraph.language" set to "EN". +This query performs a basic nested knn search: + +```json +{ + "query" : { + "nested" : { + "path" : "paragraph", + "query" : { + "knn": { + "query_vector": [0.45, 0.50], + "field": "paragraph.vector" + } + } + } + } +} +``` + +### Filter over nested metadata + +```{applies_to} +stack: ga 9.2 +``` + +This query filters over nested metadata. For scoring parent documents, this query only considers vectors that +have "paragraph.language" set to "EN": ```json { @@ -238,10 +263,11 @@ have "paragraph.language" set to "EN". } ``` -Below is a sample query with two filters: one over nested metadata -and another over the top level metadata. For scoring parents' documents, +### Multiple filters (nested and top-level metadata) + +This query uses multiple filters: one over nested metadata and another over the top level metadata. For scoring parent documents, this query only considers vectors whose parent's title contain "essay" -word and have "paragraph.language" set to "EN". +word and have "paragraph.language" set to "EN": ```json { From 518e51eb95a52f9c35d221e73c662bd3ae7879e2 Mon Sep 17 00:00:00 2001 From: Liam Thompson Date: Fri, 22 Aug 2025 11:01:29 +0200 Subject: [PATCH 2/2] add tag to second nested example --- .../query-languages/query-dsl/query-dsl-knn-query.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/reference/query-languages/query-dsl/query-dsl-knn-query.md b/docs/reference/query-languages/query-dsl/query-dsl-knn-query.md index d603c0711cd11..544a7be012fc2 100644 --- a/docs/reference/query-languages/query-dsl/query-dsl-knn-query.md +++ b/docs/reference/query-languages/query-dsl/query-dsl-knn-query.md @@ -265,6 +265,10 @@ have "paragraph.language" set to "EN": ### Multiple filters (nested and top-level metadata) +```{applies_to} +stack: ga 9.2 +``` + This query uses multiple filters: one over nested metadata and another over the top level metadata. For scoring parent documents, this query only considers vectors whose parent's title contain "essay" word and have "paragraph.language" set to "EN":