Skip to content

Commit 945f166

Browse files
authored
Merge pull request #96 from ragusa87/fix-95
Fix: union in multisearch
2 parents f33c6a3 + 85cabef commit 945f166

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

src/typesense/multi_search.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ def perform(
8383
stringify_search_params(search_params)
8484
for search_params in search_queries.get("searches")
8585
]
86-
search_body = {"searches": stringified_search_params}
86+
search_body = {
87+
"searches": stringified_search_params,
88+
"union": search_queries.get("union", False),
89+
}
8790
response: MultiSearchResponse = self.api_call.post(
8891
MultiSearch.resource_path,
8992
body=search_body,

tests/multi_search_test.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,51 @@ def test_multi_search_multiple_searches(
106106
)
107107

108108

109+
def test_multi_search_union(
110+
actual_multi_search: MultiSearch,
111+
actual_api_call: ApiCall,
112+
delete_all: None,
113+
create_collection: None,
114+
create_document: None,
115+
) -> None:
116+
"""Test that the MultiSearch object can perform multiple searches."""
117+
request_params: MultiSearchRequestSchema = {
118+
"union": True,
119+
"searches": [
120+
{"q": "com", "query_by": "company_name", "collection": "companies"},
121+
{"q": "company", "query_by": "company_name", "collection": "companies"},
122+
],
123+
}
124+
125+
response = actual_multi_search.perform(search_queries=request_params)
126+
127+
assert_to_contain_keys(
128+
response,
129+
[
130+
"found",
131+
"hits",
132+
"page",
133+
"out_of",
134+
"union_request_params",
135+
"search_time_ms",
136+
"search_cutoff",
137+
],
138+
)
139+
140+
assert_to_contain_keys(
141+
response.get("hits")[0],
142+
[
143+
"collection",
144+
"document",
145+
"highlights",
146+
"highlight",
147+
"text_match",
148+
"text_match_info",
149+
"search_index",
150+
],
151+
)
152+
153+
109154
def test_multi_search_array(
110155
actual_multi_search: MultiSearch,
111156
actual_api_call: ApiCall,

0 commit comments

Comments
 (0)