From e741df9c7c0e4be77d6d6887bdf8cb2ecf55ac28 Mon Sep 17 00:00:00 2001 From: Peter-Josef Meisch Date: Tue, 14 Feb 2023 20:45:16 +0100 Subject: [PATCH] Support KNN queries in NativeQuery. Original Pull Request #2458 Closes #2433 --- .../elasticsearch/client/elc/NativeQuery.java | 11 +++++++++++ .../client/elc/NativeQueryBuilder.java | 15 +++++++++++++++ .../client/elc/RequestConverter.java | 6 ++++-- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/client/elc/NativeQuery.java b/src/main/java/org/springframework/data/elasticsearch/client/elc/NativeQuery.java index 0dec41fb1..b4237e378 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/elc/NativeQuery.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/elc/NativeQuery.java @@ -15,6 +15,7 @@ */ package org.springframework.data.elasticsearch.client.elc; +import co.elastic.clients.elasticsearch._types.KnnQuery; import co.elastic.clients.elasticsearch._types.SortOptions; import co.elastic.clients.elasticsearch._types.aggregations.Aggregation; import co.elastic.clients.elasticsearch._types.query_dsl.Query; @@ -53,6 +54,7 @@ public class NativeQuery extends BaseQuery { private List sortOptions = Collections.emptyList(); private Map searchExtensions = Collections.emptyMap(); + @Nullable private KnnQuery knnQuery; public NativeQuery(NativeQueryBuilder builder) { super(builder); @@ -70,6 +72,7 @@ public class NativeQuery extends BaseQuery { "Cannot add an NativeQuery in a NativeQuery"); } this.springDataQuery = builder.getSpringDataQuery(); + this.knnQuery = builder.getKnnQuery(); } public NativeQuery(@Nullable Query query) { @@ -124,6 +127,14 @@ public class NativeQuery extends BaseQuery { this.springDataQuery = springDataQuery; } + /** + * @since 5.1 + */ + @Nullable + public KnnQuery getKnnQuery() { + return knnQuery; + } + @Nullable public org.springframework.data.elasticsearch.core.query.Query getSpringDataQuery() { return springDataQuery; diff --git a/src/main/java/org/springframework/data/elasticsearch/client/elc/NativeQueryBuilder.java b/src/main/java/org/springframework/data/elasticsearch/client/elc/NativeQueryBuilder.java index 86de08fcd..7ffe553cb 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/elc/NativeQueryBuilder.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/elc/NativeQueryBuilder.java @@ -15,6 +15,7 @@ */ package org.springframework.data.elasticsearch.client.elc; +import co.elastic.clients.elasticsearch._types.KnnQuery; import co.elastic.clients.elasticsearch._types.SortOptions; import co.elastic.clients.elasticsearch._types.aggregations.Aggregation; import co.elastic.clients.elasticsearch._types.query_dsl.Query; @@ -52,6 +53,7 @@ public class NativeQueryBuilder extends BaseQueryBuilder searchExtensions = new LinkedHashMap<>(); @Nullable private org.springframework.data.elasticsearch.core.query.Query springDataQuery; + @Nullable private KnnQuery knnQuery; public NativeQueryBuilder() {} @@ -91,6 +93,11 @@ public class NativeQueryBuilder extends BaseQueryBuilder