Skip to content

Commit 9ade575

Browse files
Added inner_hits option to kNN search (#1777)
1 parent b9c8343 commit 9ade575

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

elasticsearch_dsl/search_base.py

+4
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,7 @@ def knn(
514514
boost=None,
515515
filter=None,
516516
similarity=None,
517+
inner_hits=None,
517518
):
518519
"""
519520
Add a k-nearest neighbor (kNN) search.
@@ -526,6 +527,7 @@ def knn(
526527
:arg boost: A floating-point boost factor for kNN scores
527528
:arg filter: query to filter the documents that can match
528529
:arg similarity: the minimum similarity required for a document to be considered a match, as a float value
530+
:arg inner_hits: retrieve hits from nested field
529531
530532
Example::
531533
@@ -560,6 +562,8 @@ def knn(
560562
s._knn[-1]["filter"] = filter
561563
if similarity is not None:
562564
s._knn[-1]["similarity"] = similarity
565+
if inner_hits is not None:
566+
s._knn[-1]["inner_hits"] = inner_hits
563567
return s
564568

565569
def rank(self, rrf=None):

tests/_async/test_search.py

+2
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ def test_knn():
266266
query_vector_builder={
267267
"text_embedding": {"model_id": "foo", "model_text": "search text"}
268268
},
269+
inner_hits={"size": 1},
269270
)
270271
assert {
271272
"knn": [
@@ -283,6 +284,7 @@ def test_knn():
283284
"text_embedding": {"model_id": "foo", "model_text": "search text"}
284285
},
285286
"boost": 0.8,
287+
"inner_hits": {"size": 1},
286288
},
287289
]
288290
} == s.to_dict()

tests/_sync/test_search.py

+2
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ def test_knn():
266266
query_vector_builder={
267267
"text_embedding": {"model_id": "foo", "model_text": "search text"}
268268
},
269+
inner_hits={"size": 1},
269270
)
270271
assert {
271272
"knn": [
@@ -283,6 +284,7 @@ def test_knn():
283284
"text_embedding": {"model_id": "foo", "model_text": "search text"}
284285
},
285286
"boost": 0.8,
287+
"inner_hits": {"size": 1},
286288
},
287289
]
288290
} == s.to_dict()

0 commit comments

Comments
 (0)