MCPcopy
hub / github.com/redis/redis-py / test_basic_hybrid_search

Method test_basic_hybrid_search

tests/test_search.py:4221–4259  ·  view source on GitHub ↗
(self, client)

Source from the content-addressed store, hash-verified

4219 @pytest.mark.redismod
4220 @skip_if_server_version_lt("8.4.0")
4221 def test_basic_hybrid_search(self, client):
4222 # Create index and add data
4223 self._create_hybrid_search_index(client)
4224 self._add_data_for_hybrid_search(client, items_sets=5)
4225
4226 # set search query
4227 search_query = HybridSearchQuery("@color:{red} @color:{green}")
4228
4229 vsim_query = HybridVsimQuery(
4230 vector_field_name="@embedding",
4231 vector_data="$vec",
4232 )
4233
4234 hybrid_query = HybridQuery(search_query, vsim_query)
4235
4236 res = client.ft().hybrid_search(
4237 query=hybrid_query,
4238 params_substitution={
4239 "vec": np.array([-100, -200, -200, -300], dtype=np.float32).tobytes()
4240 },
4241 )
4242
4243 # the default results count limit is 10
4244 if expects_resp2_shape(client) or expects_unified_shape(client):
4245 assert res.total_results == 10
4246 assert len(res.results) == 10
4247 assert res.warnings == []
4248 assert res.execution_time > 0
4249 assert all(isinstance(res.results[i]["__score"], bytes) for i in range(10))
4250 assert all(isinstance(res.results[i]["__key"], bytes) for i in range(10))
4251 elif expects_resp3_shape(client):
4252 assert res["total_results"] == 10
4253 assert len(res["results"]) == 10
4254 assert res["warnings"] == []
4255 assert res["execution_time"] > 0
4256 assert all(
4257 isinstance(res["results"][i]["__score"], bytes) for i in range(10)
4258 )
4259 assert all(isinstance(res["results"][i]["__key"], bytes) for i in range(10))
4260
4261 @pytest.mark.redismod
4262 @skip_if_server_version_lt("8.3.224")

Callers

nothing calls this directly

Calls 10

HybridSearchQueryClass · 0.90
HybridVsimQueryClass · 0.90
HybridQueryClass · 0.90
expects_resp2_shapeFunction · 0.85
expects_unified_shapeFunction · 0.85
expects_resp3_shapeFunction · 0.85
hybrid_searchMethod · 0.45
ftMethod · 0.45

Tested by

no test coverage detected