diff --git a/integration/test_collection_query_profile.py b/integration/test_collection_query_profile.py new file mode 100644 index 000000000..da93b90f5 --- /dev/null +++ b/integration/test_collection_query_profile.py @@ -0,0 +1,253 @@ +import re +from typing import Any + +import pytest + +from weaviate.collections import Collection +from weaviate.collections.classes.config import DataType, Property +from weaviate.collections.classes.data import DataObject +from weaviate.collections.classes.grpc import GroupBy, MetadataQuery +from weaviate.collections.classes.internal import SearchProfileReturn +from integration.conftest import CollectionFactory + +GO_DURATION_RE = re.compile(r"[\d.]+(ns|µs|ms|s|m|h)") + + +def assert_go_duration(value: str, label: str = "") -> None: + """Assert that a string looks like a Go duration (e.g. '1.234ms', '5.458µs').""" + assert GO_DURATION_RE.fullmatch(value), ( + f"Expected Go duration format for {label!r}, got {value!r}" + ) + + +def assert_common_profile(profile: SearchProfileReturn) -> None: + """Assertions shared by every search profile regardless of type.""" + assert len(profile.details) > 0, "Profile details should not be empty" + assert "total_took" in profile.details + assert_go_duration(profile.details["total_took"], "total_took") + for key, value in profile.details.items(): + assert isinstance(key, str) and key != "" + assert isinstance(value, str) and value != "" + + +def _create_and_populate(collection_factory: CollectionFactory) -> Collection[Any, Any]: + collection = collection_factory( + properties=[Property(name="text", data_type=DataType.TEXT)], + ) + if collection._connection._weaviate_version.is_lower_than(1, 36, 9): + pytest.skip("Query profiling requires Weaviate >= 1.36.9") + collection.data.insert_many( + [ + DataObject(properties={"text": "hello world"}, vector=[1.0, 0.0, 0.0]), + DataObject(properties={"text": "goodbye world"}, vector=[0.0, 1.0, 0.0]), + DataObject(properties={"text": "foo bar baz"}, vector=[0.0, 0.0, 1.0]), + ] + ) + return collection + + +def test_fetch_objects_with_query_profile(collection_factory: CollectionFactory) -> None: + """Test that query profiling works with fetch_objects (object lookup).""" + collection = _create_and_populate(collection_factory) + result = collection.query.fetch_objects( + return_metadata=MetadataQuery(query_profile=True), + ) + assert len(result.objects) == 3 + assert result.query_profile is not None + assert len(result.query_profile.shards) > 0 + + shard = result.query_profile.shards[0] + assert shard.name != "" + assert shard.node != "" + + assert "object" in shard.searches + assert "vector" not in shard.searches + assert "keyword" not in shard.searches + assert_common_profile(shard.searches["object"]) + + +def test_near_vector_with_query_profile(collection_factory: CollectionFactory) -> None: + """Test that query profiling works with near_vector search.""" + collection = _create_and_populate(collection_factory) + result = collection.query.near_vector( + near_vector=[1.0, 0.0, 0.0], + return_metadata=MetadataQuery(query_profile=True, distance=True), + limit=2, + ) + assert len(result.objects) == 2 + assert result.query_profile is not None + assert len(result.query_profile.shards) > 0 + + shard = result.query_profile.shards[0] + assert "vector" in shard.searches + assert "keyword" not in shard.searches + assert "object" not in shard.searches + vector_profile = shard.searches["vector"] + assert_common_profile(vector_profile) + + assert "vector_search_took" in vector_profile.details + assert_go_duration(vector_profile.details["vector_search_took"], "vector_search_took") + + assert "hnsw_flat_search" in vector_profile.details + assert vector_profile.details["hnsw_flat_search"] in ("true", "false") + + layer_keys = [k for k in vector_profile.details if k.startswith("knn_search_layer_")] + assert len(layer_keys) > 0, "Expected at least one knn_search_layer_*_took key" + for k in layer_keys: + assert_go_duration(vector_profile.details[k], k) + + assert "objects_took" in vector_profile.details + assert_go_duration(vector_profile.details["objects_took"], "objects_took") + + +def test_bm25_with_query_profile(collection_factory: CollectionFactory) -> None: + """Test that query profiling works with BM25 keyword search.""" + collection = _create_and_populate(collection_factory) + result = collection.query.bm25( + query="hello", + return_metadata=MetadataQuery(query_profile=True, score=True), + ) + assert result.query_profile is not None + assert len(result.query_profile.shards) > 0 + + shard = result.query_profile.shards[0] + assert "keyword" in shard.searches + assert "vector" not in shard.searches + assert "object" not in shard.searches + keyword_profile = shard.searches["keyword"] + assert_common_profile(keyword_profile) + + assert "kwd_method" in keyword_profile.details + assert keyword_profile.details["kwd_method"] != "" + + assert "kwd_time" in keyword_profile.details + assert_go_duration(keyword_profile.details["kwd_time"], "kwd_time") + + assert "kwd_1_tok_time" in keyword_profile.details + assert_go_duration(keyword_profile.details["kwd_1_tok_time"], "kwd_1_tok_time") + + assert "kwd_6_res_count" in keyword_profile.details + assert keyword_profile.details["kwd_6_res_count"].isdigit() + assert int(keyword_profile.details["kwd_6_res_count"]) >= 0 + + +def test_hybrid_with_query_profile(collection_factory: CollectionFactory) -> None: + """Test that query profiling works with hybrid search (both vector and keyword).""" + collection = _create_and_populate(collection_factory) + result = collection.query.hybrid( + query="hello", + vector=[1.0, 0.0, 0.0], + return_metadata=MetadataQuery(query_profile=True), + limit=2, + ) + assert result.query_profile is not None + assert len(result.query_profile.shards) > 0 + + shard = result.query_profile.shards[0] + assert "vector" in shard.searches, "Hybrid should produce a 'vector' profile" + assert "keyword" in shard.searches, "Hybrid should produce a 'keyword' profile" + assert "object" not in shard.searches + + assert_common_profile(shard.searches["vector"]) + assert "vector_search_took" in shard.searches["vector"].details + + assert_common_profile(shard.searches["keyword"]) + assert "kwd_method" in shard.searches["keyword"].details + + +def test_near_vector_group_by_with_query_profile( + collection_factory: CollectionFactory, +) -> None: + """Test that query profiling works with group_by.""" + collection = _create_and_populate(collection_factory) + result = collection.query.near_vector( + near_vector=[1.0, 0.0, 0.0], + return_metadata=MetadataQuery(query_profile=True), + group_by=GroupBy(prop="text", objects_per_group=1, number_of_groups=3), + ) + assert result.query_profile is not None + assert len(result.query_profile.shards) > 0 + + shard = result.query_profile.shards[0] + assert "vector" in shard.searches + assert_common_profile(shard.searches["vector"]) + + +def test_full_with_profile(collection_factory: CollectionFactory) -> None: + """Test that MetadataQuery.full_with_profile() returns profiling and all other metadata.""" + collection = _create_and_populate(collection_factory) + result = collection.query.near_vector( + near_vector=[1.0, 0.0, 0.0], + return_metadata=MetadataQuery.full_with_profile(), + limit=1, + ) + assert len(result.objects) == 1 + obj = result.objects[0] + assert obj.metadata.distance is not None + assert obj.metadata.creation_time is not None + assert obj.metadata.last_update_time is not None + assert obj.metadata.score is not None + assert obj.metadata.explain_score is not None + + assert result.query_profile is not None + assert len(result.query_profile.shards) > 0 + assert_common_profile(result.query_profile.shards[0].searches["vector"]) + + +def test_full_excludes_query_profile(collection_factory: CollectionFactory) -> None: + """Test that MetadataQuery.full() does not include query profiling.""" + collection = _create_and_populate(collection_factory) + result = collection.query.fetch_objects( + return_metadata=MetadataQuery.full(), + ) + assert result.query_profile is None + + +def test_no_query_profile_when_not_requested( + collection_factory: CollectionFactory, +) -> None: + """Test that query_profile is None when not requested.""" + collection = _create_and_populate(collection_factory) + result = collection.query.fetch_objects( + return_metadata=MetadataQuery(distance=True), + ) + assert result.query_profile is None + + +def test_query_profile_with_metadata_list( + collection_factory: CollectionFactory, +) -> None: + """Test that query profiling works when using list-style metadata.""" + collection = _create_and_populate(collection_factory) + result = collection.query.near_vector( + near_vector=[1.0, 0.0, 0.0], + return_metadata=["query_profile", "distance"], + limit=2, + ) + assert result.query_profile is not None + assert len(result.query_profile.shards) > 0 + + shard = result.query_profile.shards[0] + assert "vector" in shard.searches + assert_common_profile(shard.searches["vector"]) + + +def test_query_profile_details_are_strings( + collection_factory: CollectionFactory, +) -> None: + """Test that all detail keys and values are non-empty strings.""" + collection = _create_and_populate(collection_factory) + result = collection.query.near_vector( + near_vector=[1.0, 0.0, 0.0], + return_metadata=MetadataQuery(query_profile=True), + limit=1, + ) + assert result.query_profile is not None + for shard in result.query_profile.shards: + assert len(shard.searches) > 0, "Shard should have at least one search profile" + for search_type, profile in shard.searches.items(): + assert isinstance(search_type, str) and search_type != "" + assert len(profile.details) > 0 + for key, value in profile.details.items(): + assert isinstance(key, str) and key != "" + assert isinstance(value, str) and value != "" diff --git a/weaviate/collections/classes/grpc.py b/weaviate/collections/classes/grpc.py index bff0e35ca..bdcc53dd9 100644 --- a/weaviate/collections/classes/grpc.py +++ b/weaviate/collections/classes/grpc.py @@ -90,10 +90,32 @@ class MetadataQuery(_WeaviateInput): score: bool = Field(default=False) explain_score: bool = Field(default=False) is_consistent: bool = Field(default=False) + query_profile: bool = Field(default=False) @classmethod def full(cls) -> "MetadataQuery": - """Return a MetadataQuery with all fields set to True.""" + """Return a MetadataQuery with all fields set to True. + + NOTE: `query_profile` is excluded because it adds performance overhead. + Use `full_with_profile()` to include it. + """ + return cls( + creation_time=True, + last_update_time=True, + distance=True, + certainty=True, + score=True, + explain_score=True, + is_consistent=True, + ) + + @classmethod + def full_with_profile(cls) -> "MetadataQuery": + """Return a MetadataQuery with all fields set to True, including query profiling. + + Query profiling adds per-shard execution timing breakdowns to the response + but has performance overhead. Requires Weaviate >= 1.36.9. + """ return cls( creation_time=True, last_update_time=True, @@ -102,6 +124,7 @@ def full(cls) -> "MetadataQuery": score=True, explain_score=True, is_consistent=True, + query_profile=True, ) @@ -117,6 +140,7 @@ class _MetadataQuery: explain_score: bool = False is_consistent: bool = False vectors: Optional[List[str]] = None + query_profile: bool = False @classmethod def from_public( @@ -138,6 +162,7 @@ def from_public( score=public.score, explain_score=public.explain_score, is_consistent=public.is_consistent, + query_profile=public.query_profile, ) ) @@ -152,6 +177,7 @@ def from_public( "score", "explain_score", "is_consistent", + "query_profile", ] ], MetadataQuery, diff --git a/weaviate/collections/classes/internal.py b/weaviate/collections/classes/internal.py index f4d542f66..55a69c5cd 100644 --- a/weaviate/collections/classes/internal.py +++ b/weaviate/collections/classes/internal.py @@ -90,6 +90,29 @@ def _is_empty(self) -> bool: ) +@dataclass +class SearchProfileReturn: + """Profiling details for a single search type within a shard.""" + + details: Dict[str, str] + + +@dataclass +class ShardProfileReturn: + """Profiling data for a single shard.""" + + name: str + node: str + searches: Dict[str, SearchProfileReturn] + + +@dataclass +class QueryProfileReturn: + """Per-shard query profiling data returned when `query_profile=True` is set in metadata.""" + + shards: List[ShardProfileReturn] + + @dataclass class GroupByMetadataReturn: """Metadata of an object returned by a group by query.""" @@ -210,6 +233,7 @@ class GenerativeReturn(Generic[P, R]): __generated: Optional[str] objects: List[GenerativeObject[P, R]] generative: Optional[GenerativeGrouped] + query_profile: Optional[QueryProfileReturn] # init required because of nuances of dataclass when defining @property generated and private var __generated def __init__( @@ -217,10 +241,12 @@ def __init__( generated: Optional[str], objects: List[GenerativeObject[P, R]], generative: Optional[GenerativeGrouped], + query_profile: Optional[QueryProfileReturn] = None, ) -> None: self.__generated = generated self.objects = objects self.generative = generative + self.query_profile = query_profile @property @deprecated( @@ -257,6 +283,7 @@ class GenerativeGroupByReturn(Generic[P, R]): objects: List[GroupByObject[P, R]] groups: Dict[str, GenerativeGroup[P, R]] generated: Optional[str] + query_profile: Optional[QueryProfileReturn] = None @dataclass @@ -265,6 +292,7 @@ class GroupByReturn(Generic[P, R]): objects: List[GroupByObject[P, R]] groups: Dict[str, Group[P, R]] + query_profile: Optional[QueryProfileReturn] = None @dataclass @@ -272,6 +300,7 @@ class QueryReturn(Generic[P, R]): """The return type of a query within the `.query` namespace of a collection.""" objects: List[Object[P, R]] + query_profile: Optional[QueryProfileReturn] = None _GQLEntryReturnType: TypeAlias = Dict[str, List[Dict[str, Any]]] diff --git a/weaviate/collections/grpc/query.py b/weaviate/collections/grpc/query.py index 1ac014ada..d635a3f2f 100644 --- a/weaviate/collections/grpc/query.py +++ b/weaviate/collections/grpc/query.py @@ -521,6 +521,7 @@ def _metadata_to_grpc(self, metadata: _MetadataQuery) -> search_get_pb2.Metadata score=metadata.score, is_consistent=metadata.is_consistent, vectors=metadata.vectors, + query_profile=metadata.query_profile, ) def __resolve_property(self, prop: QueryNested) -> search_get_pb2.ObjectPropertiesRequest: diff --git a/weaviate/collections/queries/base_executor.py b/weaviate/collections/queries/base_executor.py index e721d9edb..f3eb36399 100644 --- a/weaviate/collections/queries/base_executor.py +++ b/weaviate/collections/queries/base_executor.py @@ -40,9 +40,12 @@ GroupByReturn, MetadataReturn, Object, + QueryProfileReturn, QueryReturn, ReturnProperties, ReturnReferences, + SearchProfileReturn, + ShardProfileReturn, WeaviateProperties, _CrossReference, _extract_properties_from_data_model, @@ -53,7 +56,7 @@ from weaviate.collections.grpc.query import _QueryGRPC from weaviate.collections.grpc.shared import _ByteOps, _Unpack from weaviate.connect.v4 import ConnectionType -from weaviate.exceptions import WeaviateInvalidInputError +from weaviate.exceptions import WeaviateInvalidInputError, WeaviateUnsupportedFeatureError from weaviate.proto.v1 import base_pb2, generative_pb2, properties_pb2, search_get_pb2 from weaviate.types import INCLUDE_VECTOR from weaviate.util import ( @@ -452,6 +455,25 @@ def __result_to_group_by_object( belongs_to_group=group_name, ) + def __extract_query_profile( + self, res: search_get_pb2.SearchReply + ) -> Optional[QueryProfileReturn]: + if not res.HasField("query_profile"): + return None + return QueryProfileReturn( + shards=[ + ShardProfileReturn( + name=shard.name, + node=shard.node, + searches={ + key: SearchProfileReturn(details=dict(profile.details)) + for key, profile in shard.searches.items() + }, + ) + for shard in res.query_profile.shards + ] + ) + def _result_to_query_return( self, res: search_get_pb2.SearchReply, @@ -461,7 +483,8 @@ def _result_to_query_return( objects=[ self.__result_to_query_object(obj.properties, obj.metadata, options) for obj in res.results - ] + ], + query_profile=self.__extract_query_profile(res), ) def _result_to_generative_query_return( @@ -480,6 +503,7 @@ def _result_to_generative_query_return( generative=self.__extract_generative_grouped_from_generative( res.generative_grouped_results ), + query_profile=self.__extract_query_profile(res), ) def _result_to_generative_return( @@ -507,7 +531,11 @@ def _result_to_groupby_return( objects_group_by: List[GroupByObject] = [ obj for group in groups.values() for obj in group.objects ] - return GroupByReturn(objects=objects_group_by, groups=groups) + return GroupByReturn( + objects=objects_group_by, + groups=groups, + query_profile=self.__extract_query_profile(res), + ) def _result_to_generative_groupby_return( self, @@ -537,6 +565,7 @@ def _result_to_generative_groupby_return( generated=( res.generative_grouped_result if res.generative_grouped_result != "" else None ), + query_profile=self.__extract_query_profile(res), ) def _result_to_query_or_groupby_return( @@ -615,6 +644,13 @@ def _parse_return_metadata( ret_md = cast(MetadataQuery, return_metadata) else: ret_md = MetadataQuery(**{str(prop): True for prop in return_metadata}) + + if ret_md is not None and ret_md.query_profile: + if self._connection._weaviate_version.is_lower_than(1, 36, 9): + raise WeaviateUnsupportedFeatureError( + "Query profiling", str(self._connection._weaviate_version), "1.36.9" + ) + return _MetadataQuery.from_public(ret_md, include_vector) def _parse_return_references( diff --git a/weaviate/outputs/query.py b/weaviate/outputs/query.py index 42ede14b3..625d669d8 100644 --- a/weaviate/outputs/query.py +++ b/weaviate/outputs/query.py @@ -32,11 +32,14 @@ Object, ObjectSingleReturn, QueryNearMediaReturnType, + QueryProfileReturn, QueryReturn, QueryReturnType, QuerySingleReturn, ReferenceInput, ReferenceInputs, + SearchProfileReturn, + ShardProfileReturn, ) from weaviate.collections.classes.types import ( GeoCoordinate, @@ -75,11 +78,14 @@ "GenerativeGroup", "PhoneNumberType", "QueryNearMediaReturnType", + "QueryProfileReturn", "QueryReturnType", "QueryReturn", "QuerySingleReturn", "ReferenceInput", "ReferenceInputs", + "SearchProfileReturn", + "ShardProfileReturn", "Sorting", "TargetVectorJoinType", "WeaviateField", diff --git a/weaviate/proto/v1/v4216/v1/search_get_pb2.py b/weaviate/proto/v1/v4216/v1/search_get_pb2.py index 7885e57d6..78f20076e 100644 --- a/weaviate/proto/v1/v4216/v1/search_get_pb2.py +++ b/weaviate/proto/v1/v4216/v1/search_get_pb2.py @@ -17,7 +17,7 @@ from weaviate.proto.v1.v4216.v1 import properties_pb2 as v1_dot_properties__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13v1/search_get.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\x1a\x14v1/base_search.proto\x1a\x13v1/generative.proto\x1a\x13v1/properties.proto\"\x9c\x0b\n\rSearchRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0e\n\x06tenant\x18\n \x01(\t\x12=\n\x11\x63onsistency_level\x18\x0b \x01(\x0e\x32\x1d.weaviate.v1.ConsistencyLevelH\x00\x88\x01\x01\x12\x37\n\nproperties\x18\x14 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequestH\x01\x88\x01\x01\x12\x33\n\x08metadata\x18\x15 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequestH\x02\x88\x01\x01\x12+\n\x08group_by\x18\x16 \x01(\x0b\x32\x14.weaviate.v1.GroupByH\x03\x88\x01\x01\x12\r\n\x05limit\x18\x1e \x01(\r\x12\x0e\n\x06offset\x18\x1f \x01(\r\x12\x0f\n\x07\x61utocut\x18 \x01(\r\x12\r\n\x05\x61\x66ter\x18! \x01(\t\x12$\n\x07sort_by\x18\" \x03(\x0b\x32\x13.weaviate.v1.SortBy\x12*\n\x07\x66ilters\x18( \x01(\x0b\x32\x14.weaviate.v1.FiltersH\x04\x88\x01\x01\x12/\n\rhybrid_search\x18) \x01(\x0b\x32\x13.weaviate.v1.HybridH\x05\x88\x01\x01\x12+\n\x0b\x62m25_search\x18* \x01(\x0b\x32\x11.weaviate.v1.BM25H\x06\x88\x01\x01\x12\x31\n\x0bnear_vector\x18+ \x01(\x0b\x32\x17.weaviate.v1.NearVectorH\x07\x88\x01\x01\x12\x31\n\x0bnear_object\x18, \x01(\x0b\x32\x17.weaviate.v1.NearObjectH\x08\x88\x01\x01\x12\x33\n\tnear_text\x18- \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearchH\t\x88\x01\x01\x12\x35\n\nnear_image\x18. \x01(\x0b\x32\x1c.weaviate.v1.NearImageSearchH\n\x88\x01\x01\x12\x35\n\nnear_audio\x18/ \x01(\x0b\x32\x1c.weaviate.v1.NearAudioSearchH\x0b\x88\x01\x01\x12\x35\n\nnear_video\x18\x30 \x01(\x0b\x32\x1c.weaviate.v1.NearVideoSearchH\x0c\x88\x01\x01\x12\x35\n\nnear_depth\x18\x31 \x01(\x0b\x32\x1c.weaviate.v1.NearDepthSearchH\r\x88\x01\x01\x12\x39\n\x0cnear_thermal\x18\x32 \x01(\x0b\x32\x1e.weaviate.v1.NearThermalSearchH\x0e\x88\x01\x01\x12\x31\n\x08near_imu\x18\x33 \x01(\x0b\x32\x1a.weaviate.v1.NearIMUSearchH\x0f\x88\x01\x01\x12\x36\n\ngenerative\x18< \x01(\x0b\x32\x1d.weaviate.v1.GenerativeSearchH\x10\x88\x01\x01\x12(\n\x06rerank\x18= \x01(\x0b\x32\x13.weaviate.v1.RerankH\x11\x88\x01\x01\x12\x18\n\x0cuses_123_api\x18\x64 \x01(\x08\x42\x02\x18\x01\x12\x18\n\x0cuses_125_api\x18\x65 \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0cuses_127_api\x18\x66 \x01(\x08\x42\x14\n\x12_consistency_levelB\r\n\x0b_propertiesB\x0b\n\t_metadataB\x0b\n\t_group_byB\n\n\x08_filtersB\x10\n\x0e_hybrid_searchB\x0e\n\x0c_bm25_searchB\x0e\n\x0c_near_vectorB\x0e\n\x0c_near_objectB\x0c\n\n_near_textB\r\n\x0b_near_imageB\r\n\x0b_near_audioB\r\n\x0b_near_videoB\r\n\x0b_near_depthB\x0f\n\r_near_thermalB\x0b\n\t_near_imuB\r\n\x0b_generativeB\t\n\x07_rerank\"L\n\x07GroupBy\x12\x0c\n\x04path\x18\x01 \x03(\t\x12\x18\n\x10number_of_groups\x18\x02 \x01(\x05\x12\x19\n\x11objects_per_group\x18\x03 \x01(\x05\")\n\x06SortBy\x12\x11\n\tascending\x18\x01 \x01(\x08\x12\x0c\n\x04path\x18\x02 \x03(\t\"\xdd\x01\n\x0fMetadataRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\x08\x12\x0e\n\x06vector\x18\x02 \x01(\x08\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x04 \x01(\x08\x12\x10\n\x08\x64istance\x18\x05 \x01(\x08\x12\x11\n\tcertainty\x18\x06 \x01(\x08\x12\r\n\x05score\x18\x07 \x01(\x08\x12\x15\n\rexplain_score\x18\x08 \x01(\x08\x12\x15\n\ris_consistent\x18\t \x01(\x08\x12\x0f\n\x07vectors\x18\n \x03(\t\"\xd1\x01\n\x11PropertiesRequest\x12\x1a\n\x12non_ref_properties\x18\x01 \x03(\t\x12\x39\n\x0eref_properties\x18\x02 \x03(\x0b\x32!.weaviate.v1.RefPropertiesRequest\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\x12$\n\x1creturn_all_nonref_properties\x18\x0b \x01(\x08\"\x8b\x01\n\x17ObjectPropertiesRequest\x12\x11\n\tprop_name\x18\x01 \x01(\t\x12\x1c\n\x14primitive_properties\x18\x02 \x03(\t\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\"\xb1\x01\n\x14RefPropertiesRequest\x12\x1a\n\x12reference_property\x18\x01 \x01(\t\x12\x32\n\nproperties\x18\x02 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequest\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequest\x12\x19\n\x11target_collection\x18\x04 \x01(\t\"8\n\x06Rerank\x12\x10\n\x08property\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_query\"\xae\x02\n\x0bSearchReply\x12\x0c\n\x04took\x18\x01 \x01(\x02\x12*\n\x07results\x18\x02 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12*\n\x19generative_grouped_result\x18\x03 \x01(\tB\x02\x18\x01H\x00\x88\x01\x01\x12\x34\n\x10group_by_results\x18\x04 \x03(\x0b\x32\x1a.weaviate.v1.GroupByResult\x12\x46\n\x1agenerative_grouped_results\x18\x05 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x01\x88\x01\x01\x42\x1c\n\x1a_generative_grouped_resultB\x1d\n\x1b_generative_grouped_results\"\x1c\n\x0bRerankReply\x12\r\n\x05score\x18\x01 \x01(\x01\"\xe9\x02\n\rGroupByResult\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cmin_distance\x18\x02 \x01(\x02\x12\x14\n\x0cmax_distance\x18\x03 \x01(\x02\x12\x19\n\x11number_of_objects\x18\x04 \x01(\x03\x12*\n\x07objects\x18\x05 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12-\n\x06rerank\x18\x06 \x01(\x0b\x32\x18.weaviate.v1.RerankReplyH\x00\x88\x01\x01\x12\x39\n\ngenerative\x18\x07 \x01(\x0b\x32\x1c.weaviate.v1.GenerativeReplyB\x02\x18\x01H\x01\x88\x01\x01\x12=\n\x11generative_result\x18\x08 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x02\x88\x01\x01\x42\t\n\x07_rerankB\r\n\x0b_generativeB\x14\n\x12_generative_result\"\xb7\x01\n\x0cSearchResult\x12\x31\n\nproperties\x18\x01 \x01(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12\x36\n\ngenerative\x18\x03 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x00\x88\x01\x01\x42\r\n\x0b_generative\"\xf7\x04\n\x0eMetadataResult\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x18\x01\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x03\x12\"\n\x1a\x63reation_time_unix_present\x18\x04 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x05 \x01(\x03\x12%\n\x1dlast_update_time_unix_present\x18\x06 \x01(\x08\x12\x10\n\x08\x64istance\x18\x07 \x01(\x02\x12\x18\n\x10\x64istance_present\x18\x08 \x01(\x08\x12\x11\n\tcertainty\x18\t \x01(\x02\x12\x19\n\x11\x63\x65rtainty_present\x18\n \x01(\x08\x12\r\n\x05score\x18\x0b \x01(\x02\x12\x15\n\rscore_present\x18\x0c \x01(\x08\x12\x15\n\rexplain_score\x18\r \x01(\t\x12\x1d\n\x15\x65xplain_score_present\x18\x0e \x01(\x08\x12\x1a\n\ris_consistent\x18\x0f \x01(\x08H\x00\x88\x01\x01\x12\x16\n\ngenerative\x18\x10 \x01(\tB\x02\x18\x01\x12\x1e\n\x12generative_present\x18\x11 \x01(\x08\x42\x02\x18\x01\x12\x1d\n\x15is_consistent_present\x18\x12 \x01(\x08\x12\x14\n\x0cvector_bytes\x18\x13 \x01(\x0c\x12\x13\n\x0bid_as_bytes\x18\x14 \x01(\x0c\x12\x14\n\x0crerank_score\x18\x15 \x01(\x01\x12\x1c\n\x14rerank_score_present\x18\x16 \x01(\x08\x12%\n\x07vectors\x18\x17 \x03(\x0b\x32\x14.weaviate.v1.VectorsB\x10\n\x0e_is_consistent\"\x88\x02\n\x10PropertiesResult\x12\x33\n\tref_props\x18\x02 \x03(\x0b\x32 .weaviate.v1.RefPropertiesResult\x12\x19\n\x11target_collection\x18\x03 \x01(\t\x12-\n\x08metadata\x18\x04 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12.\n\rnon_ref_props\x18\x0b \x01(\x0b\x32\x17.weaviate.v1.Properties\x12\x1b\n\x13ref_props_requested\x18\x0c \x01(\x08J\x04\x08\x01\x10\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"[\n\x13RefPropertiesResult\x12\x31\n\nproperties\x18\x01 \x03(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12\x11\n\tprop_name\x18\x02 \x01(\tBs\n#io.weaviate.client.grpc.protocol.v1B\x16WeaviateProtoSearchGetZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13v1/search_get.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\x1a\x14v1/base_search.proto\x1a\x13v1/generative.proto\x1a\x13v1/properties.proto\"\x9c\x0b\n\rSearchRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0e\n\x06tenant\x18\n \x01(\t\x12=\n\x11\x63onsistency_level\x18\x0b \x01(\x0e\x32\x1d.weaviate.v1.ConsistencyLevelH\x00\x88\x01\x01\x12\x37\n\nproperties\x18\x14 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequestH\x01\x88\x01\x01\x12\x33\n\x08metadata\x18\x15 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequestH\x02\x88\x01\x01\x12+\n\x08group_by\x18\x16 \x01(\x0b\x32\x14.weaviate.v1.GroupByH\x03\x88\x01\x01\x12\r\n\x05limit\x18\x1e \x01(\r\x12\x0e\n\x06offset\x18\x1f \x01(\r\x12\x0f\n\x07\x61utocut\x18 \x01(\r\x12\r\n\x05\x61\x66ter\x18! \x01(\t\x12$\n\x07sort_by\x18\" \x03(\x0b\x32\x13.weaviate.v1.SortBy\x12*\n\x07\x66ilters\x18( \x01(\x0b\x32\x14.weaviate.v1.FiltersH\x04\x88\x01\x01\x12/\n\rhybrid_search\x18) \x01(\x0b\x32\x13.weaviate.v1.HybridH\x05\x88\x01\x01\x12+\n\x0b\x62m25_search\x18* \x01(\x0b\x32\x11.weaviate.v1.BM25H\x06\x88\x01\x01\x12\x31\n\x0bnear_vector\x18+ \x01(\x0b\x32\x17.weaviate.v1.NearVectorH\x07\x88\x01\x01\x12\x31\n\x0bnear_object\x18, \x01(\x0b\x32\x17.weaviate.v1.NearObjectH\x08\x88\x01\x01\x12\x33\n\tnear_text\x18- \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearchH\t\x88\x01\x01\x12\x35\n\nnear_image\x18. \x01(\x0b\x32\x1c.weaviate.v1.NearImageSearchH\n\x88\x01\x01\x12\x35\n\nnear_audio\x18/ \x01(\x0b\x32\x1c.weaviate.v1.NearAudioSearchH\x0b\x88\x01\x01\x12\x35\n\nnear_video\x18\x30 \x01(\x0b\x32\x1c.weaviate.v1.NearVideoSearchH\x0c\x88\x01\x01\x12\x35\n\nnear_depth\x18\x31 \x01(\x0b\x32\x1c.weaviate.v1.NearDepthSearchH\r\x88\x01\x01\x12\x39\n\x0cnear_thermal\x18\x32 \x01(\x0b\x32\x1e.weaviate.v1.NearThermalSearchH\x0e\x88\x01\x01\x12\x31\n\x08near_imu\x18\x33 \x01(\x0b\x32\x1a.weaviate.v1.NearIMUSearchH\x0f\x88\x01\x01\x12\x36\n\ngenerative\x18< \x01(\x0b\x32\x1d.weaviate.v1.GenerativeSearchH\x10\x88\x01\x01\x12(\n\x06rerank\x18= \x01(\x0b\x32\x13.weaviate.v1.RerankH\x11\x88\x01\x01\x12\x18\n\x0cuses_123_api\x18\x64 \x01(\x08\x42\x02\x18\x01\x12\x18\n\x0cuses_125_api\x18\x65 \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0cuses_127_api\x18\x66 \x01(\x08\x42\x14\n\x12_consistency_levelB\r\n\x0b_propertiesB\x0b\n\t_metadataB\x0b\n\t_group_byB\n\n\x08_filtersB\x10\n\x0e_hybrid_searchB\x0e\n\x0c_bm25_searchB\x0e\n\x0c_near_vectorB\x0e\n\x0c_near_objectB\x0c\n\n_near_textB\r\n\x0b_near_imageB\r\n\x0b_near_audioB\r\n\x0b_near_videoB\r\n\x0b_near_depthB\x0f\n\r_near_thermalB\x0b\n\t_near_imuB\r\n\x0b_generativeB\t\n\x07_rerank\"L\n\x07GroupBy\x12\x0c\n\x04path\x18\x01 \x03(\t\x12\x18\n\x10number_of_groups\x18\x02 \x01(\x05\x12\x19\n\x11objects_per_group\x18\x03 \x01(\x05\")\n\x06SortBy\x12\x11\n\tascending\x18\x01 \x01(\x08\x12\x0c\n\x04path\x18\x02 \x03(\t\"\xf4\x01\n\x0fMetadataRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\x08\x12\x0e\n\x06vector\x18\x02 \x01(\x08\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x04 \x01(\x08\x12\x10\n\x08\x64istance\x18\x05 \x01(\x08\x12\x11\n\tcertainty\x18\x06 \x01(\x08\x12\r\n\x05score\x18\x07 \x01(\x08\x12\x15\n\rexplain_score\x18\x08 \x01(\x08\x12\x15\n\ris_consistent\x18\t \x01(\x08\x12\x0f\n\x07vectors\x18\n \x03(\t\x12\x15\n\rquery_profile\x18\x0b \x01(\x08\"\xd1\x01\n\x11PropertiesRequest\x12\x1a\n\x12non_ref_properties\x18\x01 \x03(\t\x12\x39\n\x0eref_properties\x18\x02 \x03(\x0b\x32!.weaviate.v1.RefPropertiesRequest\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\x12$\n\x1creturn_all_nonref_properties\x18\x0b \x01(\x08\"\x8b\x01\n\x17ObjectPropertiesRequest\x12\x11\n\tprop_name\x18\x01 \x01(\t\x12\x1c\n\x14primitive_properties\x18\x02 \x03(\t\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\"\xb1\x01\n\x14RefPropertiesRequest\x12\x1a\n\x12reference_property\x18\x01 \x01(\t\x12\x32\n\nproperties\x18\x02 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequest\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequest\x12\x19\n\x11target_collection\x18\x04 \x01(\t\"8\n\x06Rerank\x12\x10\n\x08property\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_query\"\xf7\x02\n\x0bSearchReply\x12\x0c\n\x04took\x18\x01 \x01(\x02\x12*\n\x07results\x18\x02 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12*\n\x19generative_grouped_result\x18\x03 \x01(\tB\x02\x18\x01H\x00\x88\x01\x01\x12\x34\n\x10group_by_results\x18\x04 \x03(\x0b\x32\x1a.weaviate.v1.GroupByResult\x12\x46\n\x1agenerative_grouped_results\x18\x05 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x01\x88\x01\x01\x12\x35\n\rquery_profile\x18\x06 \x01(\x0b\x32\x19.weaviate.v1.QueryProfileH\x02\x88\x01\x01\x42\x1c\n\x1a_generative_grouped_resultB\x1d\n\x1b_generative_grouped_resultsB\x10\n\x0e_query_profile\"\x9e\x03\n\x0cQueryProfile\x12\x36\n\x06shards\x18\x01 \x03(\x0b\x32&.weaviate.v1.QueryProfile.ShardProfile\x1a\x86\x01\n\rSearchProfile\x12\x45\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32\x34.weaviate.v1.QueryProfile.SearchProfile.DetailsEntry\x1a.\n\x0c\x44\x65tailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xcc\x01\n\x0cShardProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04node\x18\x02 \x01(\t\x12\x46\n\x08searches\x18\x03 \x03(\x0b\x32\x34.weaviate.v1.QueryProfile.ShardProfile.SearchesEntry\x1aX\n\rSearchesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.weaviate.v1.QueryProfile.SearchProfile:\x02\x38\x01\"\x1c\n\x0bRerankReply\x12\r\n\x05score\x18\x01 \x01(\x01\"\xe9\x02\n\rGroupByResult\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cmin_distance\x18\x02 \x01(\x02\x12\x14\n\x0cmax_distance\x18\x03 \x01(\x02\x12\x19\n\x11number_of_objects\x18\x04 \x01(\x03\x12*\n\x07objects\x18\x05 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12-\n\x06rerank\x18\x06 \x01(\x0b\x32\x18.weaviate.v1.RerankReplyH\x00\x88\x01\x01\x12\x39\n\ngenerative\x18\x07 \x01(\x0b\x32\x1c.weaviate.v1.GenerativeReplyB\x02\x18\x01H\x01\x88\x01\x01\x12=\n\x11generative_result\x18\x08 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x02\x88\x01\x01\x42\t\n\x07_rerankB\r\n\x0b_generativeB\x14\n\x12_generative_result\"\xb7\x01\n\x0cSearchResult\x12\x31\n\nproperties\x18\x01 \x01(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12\x36\n\ngenerative\x18\x03 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x00\x88\x01\x01\x42\r\n\x0b_generative\"\xf7\x04\n\x0eMetadataResult\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x18\x01\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x03\x12\"\n\x1a\x63reation_time_unix_present\x18\x04 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x05 \x01(\x03\x12%\n\x1dlast_update_time_unix_present\x18\x06 \x01(\x08\x12\x10\n\x08\x64istance\x18\x07 \x01(\x02\x12\x18\n\x10\x64istance_present\x18\x08 \x01(\x08\x12\x11\n\tcertainty\x18\t \x01(\x02\x12\x19\n\x11\x63\x65rtainty_present\x18\n \x01(\x08\x12\r\n\x05score\x18\x0b \x01(\x02\x12\x15\n\rscore_present\x18\x0c \x01(\x08\x12\x15\n\rexplain_score\x18\r \x01(\t\x12\x1d\n\x15\x65xplain_score_present\x18\x0e \x01(\x08\x12\x1a\n\ris_consistent\x18\x0f \x01(\x08H\x00\x88\x01\x01\x12\x16\n\ngenerative\x18\x10 \x01(\tB\x02\x18\x01\x12\x1e\n\x12generative_present\x18\x11 \x01(\x08\x42\x02\x18\x01\x12\x1d\n\x15is_consistent_present\x18\x12 \x01(\x08\x12\x14\n\x0cvector_bytes\x18\x13 \x01(\x0c\x12\x13\n\x0bid_as_bytes\x18\x14 \x01(\x0c\x12\x14\n\x0crerank_score\x18\x15 \x01(\x01\x12\x1c\n\x14rerank_score_present\x18\x16 \x01(\x08\x12%\n\x07vectors\x18\x17 \x03(\x0b\x32\x14.weaviate.v1.VectorsB\x10\n\x0e_is_consistent\"\x88\x02\n\x10PropertiesResult\x12\x33\n\tref_props\x18\x02 \x03(\x0b\x32 .weaviate.v1.RefPropertiesResult\x12\x19\n\x11target_collection\x18\x03 \x01(\t\x12-\n\x08metadata\x18\x04 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12.\n\rnon_ref_props\x18\x0b \x01(\x0b\x32\x17.weaviate.v1.Properties\x12\x1b\n\x13ref_props_requested\x18\x0c \x01(\x08J\x04\x08\x01\x10\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"[\n\x13RefPropertiesResult\x12\x31\n\nproperties\x18\x01 \x03(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12\x11\n\tprop_name\x18\x02 \x01(\tBs\n#io.weaviate.client.grpc.protocol.v1B\x16WeaviateProtoSearchGetZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -31,6 +31,10 @@ _SEARCHREQUEST.fields_by_name['uses_125_api']._serialized_options = b'\030\001' _SEARCHREPLY.fields_by_name['generative_grouped_result']._options = None _SEARCHREPLY.fields_by_name['generative_grouped_result']._serialized_options = b'\030\001' + _QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY._options = None + _QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY._serialized_options = b'8\001' + _QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY._options = None + _QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY._serialized_options = b'8\001' _GROUPBYRESULT.fields_by_name['generative']._options = None _GROUPBYRESULT.fields_by_name['generative']._serialized_options = b'\030\001' _METADATARESULT.fields_by_name['vector']._options = None @@ -46,27 +50,37 @@ _globals['_SORTBY']._serialized_start=1632 _globals['_SORTBY']._serialized_end=1673 _globals['_METADATAREQUEST']._serialized_start=1676 - _globals['_METADATAREQUEST']._serialized_end=1897 - _globals['_PROPERTIESREQUEST']._serialized_start=1900 - _globals['_PROPERTIESREQUEST']._serialized_end=2109 - _globals['_OBJECTPROPERTIESREQUEST']._serialized_start=2112 - _globals['_OBJECTPROPERTIESREQUEST']._serialized_end=2251 - _globals['_REFPROPERTIESREQUEST']._serialized_start=2254 - _globals['_REFPROPERTIESREQUEST']._serialized_end=2431 - _globals['_RERANK']._serialized_start=2433 - _globals['_RERANK']._serialized_end=2489 - _globals['_SEARCHREPLY']._serialized_start=2492 - _globals['_SEARCHREPLY']._serialized_end=2794 - _globals['_RERANKREPLY']._serialized_start=2796 - _globals['_RERANKREPLY']._serialized_end=2824 - _globals['_GROUPBYRESULT']._serialized_start=2827 - _globals['_GROUPBYRESULT']._serialized_end=3188 - _globals['_SEARCHRESULT']._serialized_start=3191 - _globals['_SEARCHRESULT']._serialized_end=3374 - _globals['_METADATARESULT']._serialized_start=3377 - _globals['_METADATARESULT']._serialized_end=4008 - _globals['_PROPERTIESRESULT']._serialized_start=4011 - _globals['_PROPERTIESRESULT']._serialized_end=4275 - _globals['_REFPROPERTIESRESULT']._serialized_start=4277 - _globals['_REFPROPERTIESRESULT']._serialized_end=4368 + _globals['_METADATAREQUEST']._serialized_end=1920 + _globals['_PROPERTIESREQUEST']._serialized_start=1923 + _globals['_PROPERTIESREQUEST']._serialized_end=2132 + _globals['_OBJECTPROPERTIESREQUEST']._serialized_start=2135 + _globals['_OBJECTPROPERTIESREQUEST']._serialized_end=2274 + _globals['_REFPROPERTIESREQUEST']._serialized_start=2277 + _globals['_REFPROPERTIESREQUEST']._serialized_end=2454 + _globals['_RERANK']._serialized_start=2456 + _globals['_RERANK']._serialized_end=2512 + _globals['_SEARCHREPLY']._serialized_start=2515 + _globals['_SEARCHREPLY']._serialized_end=2890 + _globals['_QUERYPROFILE']._serialized_start=2893 + _globals['_QUERYPROFILE']._serialized_end=3307 + _globals['_QUERYPROFILE_SEARCHPROFILE']._serialized_start=2966 + _globals['_QUERYPROFILE_SEARCHPROFILE']._serialized_end=3100 + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._serialized_start=3054 + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._serialized_end=3100 + _globals['_QUERYPROFILE_SHARDPROFILE']._serialized_start=3103 + _globals['_QUERYPROFILE_SHARDPROFILE']._serialized_end=3307 + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._serialized_start=3219 + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._serialized_end=3307 + _globals['_RERANKREPLY']._serialized_start=3309 + _globals['_RERANKREPLY']._serialized_end=3337 + _globals['_GROUPBYRESULT']._serialized_start=3340 + _globals['_GROUPBYRESULT']._serialized_end=3701 + _globals['_SEARCHRESULT']._serialized_start=3704 + _globals['_SEARCHRESULT']._serialized_end=3887 + _globals['_METADATARESULT']._serialized_start=3890 + _globals['_METADATARESULT']._serialized_end=4521 + _globals['_PROPERTIESRESULT']._serialized_start=4524 + _globals['_PROPERTIESRESULT']._serialized_end=4788 + _globals['_REFPROPERTIESRESULT']._serialized_start=4790 + _globals['_REFPROPERTIESRESULT']._serialized_end=4881 # @@protoc_insertion_point(module_scope) diff --git a/weaviate/proto/v1/v4216/v1/search_get_pb2.pyi b/weaviate/proto/v1/v4216/v1/search_get_pb2.pyi index 9dd1ee0d0..a0300e672 100644 --- a/weaviate/proto/v1/v4216/v1/search_get_pb2.pyi +++ b/weaviate/proto/v1/v4216/v1/search_get_pb2.pyi @@ -88,7 +88,7 @@ class SortBy(_message.Message): def __init__(self, ascending: bool = ..., path: _Optional[_Iterable[str]] = ...) -> None: ... class MetadataRequest(_message.Message): - __slots__ = ["uuid", "vector", "creation_time_unix", "last_update_time_unix", "distance", "certainty", "score", "explain_score", "is_consistent", "vectors"] + __slots__ = ["uuid", "vector", "creation_time_unix", "last_update_time_unix", "distance", "certainty", "score", "explain_score", "is_consistent", "vectors", "query_profile"] UUID_FIELD_NUMBER: _ClassVar[int] VECTOR_FIELD_NUMBER: _ClassVar[int] CREATION_TIME_UNIX_FIELD_NUMBER: _ClassVar[int] @@ -99,6 +99,7 @@ class MetadataRequest(_message.Message): EXPLAIN_SCORE_FIELD_NUMBER: _ClassVar[int] IS_CONSISTENT_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] + QUERY_PROFILE_FIELD_NUMBER: _ClassVar[int] uuid: bool vector: bool creation_time_unix: bool @@ -109,7 +110,8 @@ class MetadataRequest(_message.Message): explain_score: bool is_consistent: bool vectors: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, uuid: bool = ..., vector: bool = ..., creation_time_unix: bool = ..., last_update_time_unix: bool = ..., distance: bool = ..., certainty: bool = ..., score: bool = ..., explain_score: bool = ..., is_consistent: bool = ..., vectors: _Optional[_Iterable[str]] = ...) -> None: ... + query_profile: bool + def __init__(self, uuid: bool = ..., vector: bool = ..., creation_time_unix: bool = ..., last_update_time_unix: bool = ..., distance: bool = ..., certainty: bool = ..., score: bool = ..., explain_score: bool = ..., is_consistent: bool = ..., vectors: _Optional[_Iterable[str]] = ..., query_profile: bool = ...) -> None: ... class PropertiesRequest(_message.Message): __slots__ = ["non_ref_properties", "ref_properties", "object_properties", "return_all_nonref_properties"] @@ -154,18 +156,54 @@ class Rerank(_message.Message): def __init__(self, property: _Optional[str] = ..., query: _Optional[str] = ...) -> None: ... class SearchReply(_message.Message): - __slots__ = ["took", "results", "generative_grouped_result", "group_by_results", "generative_grouped_results"] + __slots__ = ["took", "results", "generative_grouped_result", "group_by_results", "generative_grouped_results", "query_profile"] TOOK_FIELD_NUMBER: _ClassVar[int] RESULTS_FIELD_NUMBER: _ClassVar[int] GENERATIVE_GROUPED_RESULT_FIELD_NUMBER: _ClassVar[int] GROUP_BY_RESULTS_FIELD_NUMBER: _ClassVar[int] GENERATIVE_GROUPED_RESULTS_FIELD_NUMBER: _ClassVar[int] + QUERY_PROFILE_FIELD_NUMBER: _ClassVar[int] took: float results: _containers.RepeatedCompositeFieldContainer[SearchResult] generative_grouped_result: str group_by_results: _containers.RepeatedCompositeFieldContainer[GroupByResult] generative_grouped_results: _generative_pb2.GenerativeResult - def __init__(self, took: _Optional[float] = ..., results: _Optional[_Iterable[_Union[SearchResult, _Mapping]]] = ..., generative_grouped_result: _Optional[str] = ..., group_by_results: _Optional[_Iterable[_Union[GroupByResult, _Mapping]]] = ..., generative_grouped_results: _Optional[_Union[_generative_pb2.GenerativeResult, _Mapping]] = ...) -> None: ... + query_profile: QueryProfile + def __init__(self, took: _Optional[float] = ..., results: _Optional[_Iterable[_Union[SearchResult, _Mapping]]] = ..., generative_grouped_result: _Optional[str] = ..., group_by_results: _Optional[_Iterable[_Union[GroupByResult, _Mapping]]] = ..., generative_grouped_results: _Optional[_Union[_generative_pb2.GenerativeResult, _Mapping]] = ..., query_profile: _Optional[_Union[QueryProfile, _Mapping]] = ...) -> None: ... + +class QueryProfile(_message.Message): + __slots__ = ["shards"] + class SearchProfile(_message.Message): + __slots__ = ["details"] + class DetailsEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + DETAILS_FIELD_NUMBER: _ClassVar[int] + details: _containers.ScalarMap[str, str] + def __init__(self, details: _Optional[_Mapping[str, str]] = ...) -> None: ... + class ShardProfile(_message.Message): + __slots__ = ["name", "node", "searches"] + class SearchesEntry(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: QueryProfile.SearchProfile + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[QueryProfile.SearchProfile, _Mapping]] = ...) -> None: ... + NAME_FIELD_NUMBER: _ClassVar[int] + NODE_FIELD_NUMBER: _ClassVar[int] + SEARCHES_FIELD_NUMBER: _ClassVar[int] + name: str + node: str + searches: _containers.MessageMap[str, QueryProfile.SearchProfile] + def __init__(self, name: _Optional[str] = ..., node: _Optional[str] = ..., searches: _Optional[_Mapping[str, QueryProfile.SearchProfile]] = ...) -> None: ... + SHARDS_FIELD_NUMBER: _ClassVar[int] + shards: _containers.RepeatedCompositeFieldContainer[QueryProfile.ShardProfile] + def __init__(self, shards: _Optional[_Iterable[_Union[QueryProfile.ShardProfile, _Mapping]]] = ...) -> None: ... class RerankReply(_message.Message): __slots__ = ["score"] diff --git a/weaviate/proto/v1/v5261/v1/search_get_pb2.py b/weaviate/proto/v1/v5261/v1/search_get_pb2.py index 04356c19f..7686973af 100644 --- a/weaviate/proto/v1/v5261/v1/search_get_pb2.py +++ b/weaviate/proto/v1/v5261/v1/search_get_pb2.py @@ -18,7 +18,7 @@ from weaviate.proto.v1.v5261.v1 import properties_pb2 as v1_dot_properties__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13v1/search_get.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\x1a\x14v1/base_search.proto\x1a\x13v1/generative.proto\x1a\x13v1/properties.proto\"\x9c\x0b\n\rSearchRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0e\n\x06tenant\x18\n \x01(\t\x12=\n\x11\x63onsistency_level\x18\x0b \x01(\x0e\x32\x1d.weaviate.v1.ConsistencyLevelH\x00\x88\x01\x01\x12\x37\n\nproperties\x18\x14 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequestH\x01\x88\x01\x01\x12\x33\n\x08metadata\x18\x15 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequestH\x02\x88\x01\x01\x12+\n\x08group_by\x18\x16 \x01(\x0b\x32\x14.weaviate.v1.GroupByH\x03\x88\x01\x01\x12\r\n\x05limit\x18\x1e \x01(\r\x12\x0e\n\x06offset\x18\x1f \x01(\r\x12\x0f\n\x07\x61utocut\x18 \x01(\r\x12\r\n\x05\x61\x66ter\x18! \x01(\t\x12$\n\x07sort_by\x18\" \x03(\x0b\x32\x13.weaviate.v1.SortBy\x12*\n\x07\x66ilters\x18( \x01(\x0b\x32\x14.weaviate.v1.FiltersH\x04\x88\x01\x01\x12/\n\rhybrid_search\x18) \x01(\x0b\x32\x13.weaviate.v1.HybridH\x05\x88\x01\x01\x12+\n\x0b\x62m25_search\x18* \x01(\x0b\x32\x11.weaviate.v1.BM25H\x06\x88\x01\x01\x12\x31\n\x0bnear_vector\x18+ \x01(\x0b\x32\x17.weaviate.v1.NearVectorH\x07\x88\x01\x01\x12\x31\n\x0bnear_object\x18, \x01(\x0b\x32\x17.weaviate.v1.NearObjectH\x08\x88\x01\x01\x12\x33\n\tnear_text\x18- \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearchH\t\x88\x01\x01\x12\x35\n\nnear_image\x18. \x01(\x0b\x32\x1c.weaviate.v1.NearImageSearchH\n\x88\x01\x01\x12\x35\n\nnear_audio\x18/ \x01(\x0b\x32\x1c.weaviate.v1.NearAudioSearchH\x0b\x88\x01\x01\x12\x35\n\nnear_video\x18\x30 \x01(\x0b\x32\x1c.weaviate.v1.NearVideoSearchH\x0c\x88\x01\x01\x12\x35\n\nnear_depth\x18\x31 \x01(\x0b\x32\x1c.weaviate.v1.NearDepthSearchH\r\x88\x01\x01\x12\x39\n\x0cnear_thermal\x18\x32 \x01(\x0b\x32\x1e.weaviate.v1.NearThermalSearchH\x0e\x88\x01\x01\x12\x31\n\x08near_imu\x18\x33 \x01(\x0b\x32\x1a.weaviate.v1.NearIMUSearchH\x0f\x88\x01\x01\x12\x36\n\ngenerative\x18< \x01(\x0b\x32\x1d.weaviate.v1.GenerativeSearchH\x10\x88\x01\x01\x12(\n\x06rerank\x18= \x01(\x0b\x32\x13.weaviate.v1.RerankH\x11\x88\x01\x01\x12\x18\n\x0cuses_123_api\x18\x64 \x01(\x08\x42\x02\x18\x01\x12\x18\n\x0cuses_125_api\x18\x65 \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0cuses_127_api\x18\x66 \x01(\x08\x42\x14\n\x12_consistency_levelB\r\n\x0b_propertiesB\x0b\n\t_metadataB\x0b\n\t_group_byB\n\n\x08_filtersB\x10\n\x0e_hybrid_searchB\x0e\n\x0c_bm25_searchB\x0e\n\x0c_near_vectorB\x0e\n\x0c_near_objectB\x0c\n\n_near_textB\r\n\x0b_near_imageB\r\n\x0b_near_audioB\r\n\x0b_near_videoB\r\n\x0b_near_depthB\x0f\n\r_near_thermalB\x0b\n\t_near_imuB\r\n\x0b_generativeB\t\n\x07_rerank\"L\n\x07GroupBy\x12\x0c\n\x04path\x18\x01 \x03(\t\x12\x18\n\x10number_of_groups\x18\x02 \x01(\x05\x12\x19\n\x11objects_per_group\x18\x03 \x01(\x05\")\n\x06SortBy\x12\x11\n\tascending\x18\x01 \x01(\x08\x12\x0c\n\x04path\x18\x02 \x03(\t\"\xdd\x01\n\x0fMetadataRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\x08\x12\x0e\n\x06vector\x18\x02 \x01(\x08\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x04 \x01(\x08\x12\x10\n\x08\x64istance\x18\x05 \x01(\x08\x12\x11\n\tcertainty\x18\x06 \x01(\x08\x12\r\n\x05score\x18\x07 \x01(\x08\x12\x15\n\rexplain_score\x18\x08 \x01(\x08\x12\x15\n\ris_consistent\x18\t \x01(\x08\x12\x0f\n\x07vectors\x18\n \x03(\t\"\xd1\x01\n\x11PropertiesRequest\x12\x1a\n\x12non_ref_properties\x18\x01 \x03(\t\x12\x39\n\x0eref_properties\x18\x02 \x03(\x0b\x32!.weaviate.v1.RefPropertiesRequest\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\x12$\n\x1creturn_all_nonref_properties\x18\x0b \x01(\x08\"\x8b\x01\n\x17ObjectPropertiesRequest\x12\x11\n\tprop_name\x18\x01 \x01(\t\x12\x1c\n\x14primitive_properties\x18\x02 \x03(\t\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\"\xb1\x01\n\x14RefPropertiesRequest\x12\x1a\n\x12reference_property\x18\x01 \x01(\t\x12\x32\n\nproperties\x18\x02 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequest\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequest\x12\x19\n\x11target_collection\x18\x04 \x01(\t\"8\n\x06Rerank\x12\x10\n\x08property\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_query\"\xae\x02\n\x0bSearchReply\x12\x0c\n\x04took\x18\x01 \x01(\x02\x12*\n\x07results\x18\x02 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12*\n\x19generative_grouped_result\x18\x03 \x01(\tB\x02\x18\x01H\x00\x88\x01\x01\x12\x34\n\x10group_by_results\x18\x04 \x03(\x0b\x32\x1a.weaviate.v1.GroupByResult\x12\x46\n\x1agenerative_grouped_results\x18\x05 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x01\x88\x01\x01\x42\x1c\n\x1a_generative_grouped_resultB\x1d\n\x1b_generative_grouped_results\"\x1c\n\x0bRerankReply\x12\r\n\x05score\x18\x01 \x01(\x01\"\xe9\x02\n\rGroupByResult\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cmin_distance\x18\x02 \x01(\x02\x12\x14\n\x0cmax_distance\x18\x03 \x01(\x02\x12\x19\n\x11number_of_objects\x18\x04 \x01(\x03\x12*\n\x07objects\x18\x05 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12-\n\x06rerank\x18\x06 \x01(\x0b\x32\x18.weaviate.v1.RerankReplyH\x00\x88\x01\x01\x12\x39\n\ngenerative\x18\x07 \x01(\x0b\x32\x1c.weaviate.v1.GenerativeReplyB\x02\x18\x01H\x01\x88\x01\x01\x12=\n\x11generative_result\x18\x08 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x02\x88\x01\x01\x42\t\n\x07_rerankB\r\n\x0b_generativeB\x14\n\x12_generative_result\"\xb7\x01\n\x0cSearchResult\x12\x31\n\nproperties\x18\x01 \x01(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12\x36\n\ngenerative\x18\x03 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x00\x88\x01\x01\x42\r\n\x0b_generative\"\xf7\x04\n\x0eMetadataResult\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x18\x01\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x03\x12\"\n\x1a\x63reation_time_unix_present\x18\x04 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x05 \x01(\x03\x12%\n\x1dlast_update_time_unix_present\x18\x06 \x01(\x08\x12\x10\n\x08\x64istance\x18\x07 \x01(\x02\x12\x18\n\x10\x64istance_present\x18\x08 \x01(\x08\x12\x11\n\tcertainty\x18\t \x01(\x02\x12\x19\n\x11\x63\x65rtainty_present\x18\n \x01(\x08\x12\r\n\x05score\x18\x0b \x01(\x02\x12\x15\n\rscore_present\x18\x0c \x01(\x08\x12\x15\n\rexplain_score\x18\r \x01(\t\x12\x1d\n\x15\x65xplain_score_present\x18\x0e \x01(\x08\x12\x1a\n\ris_consistent\x18\x0f \x01(\x08H\x00\x88\x01\x01\x12\x16\n\ngenerative\x18\x10 \x01(\tB\x02\x18\x01\x12\x1e\n\x12generative_present\x18\x11 \x01(\x08\x42\x02\x18\x01\x12\x1d\n\x15is_consistent_present\x18\x12 \x01(\x08\x12\x14\n\x0cvector_bytes\x18\x13 \x01(\x0c\x12\x13\n\x0bid_as_bytes\x18\x14 \x01(\x0c\x12\x14\n\x0crerank_score\x18\x15 \x01(\x01\x12\x1c\n\x14rerank_score_present\x18\x16 \x01(\x08\x12%\n\x07vectors\x18\x17 \x03(\x0b\x32\x14.weaviate.v1.VectorsB\x10\n\x0e_is_consistent\"\x88\x02\n\x10PropertiesResult\x12\x33\n\tref_props\x18\x02 \x03(\x0b\x32 .weaviate.v1.RefPropertiesResult\x12\x19\n\x11target_collection\x18\x03 \x01(\t\x12-\n\x08metadata\x18\x04 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12.\n\rnon_ref_props\x18\x0b \x01(\x0b\x32\x17.weaviate.v1.Properties\x12\x1b\n\x13ref_props_requested\x18\x0c \x01(\x08J\x04\x08\x01\x10\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"[\n\x13RefPropertiesResult\x12\x31\n\nproperties\x18\x01 \x03(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12\x11\n\tprop_name\x18\x02 \x01(\tBs\n#io.weaviate.client.grpc.protocol.v1B\x16WeaviateProtoSearchGetZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13v1/search_get.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\x1a\x14v1/base_search.proto\x1a\x13v1/generative.proto\x1a\x13v1/properties.proto\"\x9c\x0b\n\rSearchRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0e\n\x06tenant\x18\n \x01(\t\x12=\n\x11\x63onsistency_level\x18\x0b \x01(\x0e\x32\x1d.weaviate.v1.ConsistencyLevelH\x00\x88\x01\x01\x12\x37\n\nproperties\x18\x14 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequestH\x01\x88\x01\x01\x12\x33\n\x08metadata\x18\x15 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequestH\x02\x88\x01\x01\x12+\n\x08group_by\x18\x16 \x01(\x0b\x32\x14.weaviate.v1.GroupByH\x03\x88\x01\x01\x12\r\n\x05limit\x18\x1e \x01(\r\x12\x0e\n\x06offset\x18\x1f \x01(\r\x12\x0f\n\x07\x61utocut\x18 \x01(\r\x12\r\n\x05\x61\x66ter\x18! \x01(\t\x12$\n\x07sort_by\x18\" \x03(\x0b\x32\x13.weaviate.v1.SortBy\x12*\n\x07\x66ilters\x18( \x01(\x0b\x32\x14.weaviate.v1.FiltersH\x04\x88\x01\x01\x12/\n\rhybrid_search\x18) \x01(\x0b\x32\x13.weaviate.v1.HybridH\x05\x88\x01\x01\x12+\n\x0b\x62m25_search\x18* \x01(\x0b\x32\x11.weaviate.v1.BM25H\x06\x88\x01\x01\x12\x31\n\x0bnear_vector\x18+ \x01(\x0b\x32\x17.weaviate.v1.NearVectorH\x07\x88\x01\x01\x12\x31\n\x0bnear_object\x18, \x01(\x0b\x32\x17.weaviate.v1.NearObjectH\x08\x88\x01\x01\x12\x33\n\tnear_text\x18- \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearchH\t\x88\x01\x01\x12\x35\n\nnear_image\x18. \x01(\x0b\x32\x1c.weaviate.v1.NearImageSearchH\n\x88\x01\x01\x12\x35\n\nnear_audio\x18/ \x01(\x0b\x32\x1c.weaviate.v1.NearAudioSearchH\x0b\x88\x01\x01\x12\x35\n\nnear_video\x18\x30 \x01(\x0b\x32\x1c.weaviate.v1.NearVideoSearchH\x0c\x88\x01\x01\x12\x35\n\nnear_depth\x18\x31 \x01(\x0b\x32\x1c.weaviate.v1.NearDepthSearchH\r\x88\x01\x01\x12\x39\n\x0cnear_thermal\x18\x32 \x01(\x0b\x32\x1e.weaviate.v1.NearThermalSearchH\x0e\x88\x01\x01\x12\x31\n\x08near_imu\x18\x33 \x01(\x0b\x32\x1a.weaviate.v1.NearIMUSearchH\x0f\x88\x01\x01\x12\x36\n\ngenerative\x18< \x01(\x0b\x32\x1d.weaviate.v1.GenerativeSearchH\x10\x88\x01\x01\x12(\n\x06rerank\x18= \x01(\x0b\x32\x13.weaviate.v1.RerankH\x11\x88\x01\x01\x12\x18\n\x0cuses_123_api\x18\x64 \x01(\x08\x42\x02\x18\x01\x12\x18\n\x0cuses_125_api\x18\x65 \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0cuses_127_api\x18\x66 \x01(\x08\x42\x14\n\x12_consistency_levelB\r\n\x0b_propertiesB\x0b\n\t_metadataB\x0b\n\t_group_byB\n\n\x08_filtersB\x10\n\x0e_hybrid_searchB\x0e\n\x0c_bm25_searchB\x0e\n\x0c_near_vectorB\x0e\n\x0c_near_objectB\x0c\n\n_near_textB\r\n\x0b_near_imageB\r\n\x0b_near_audioB\r\n\x0b_near_videoB\r\n\x0b_near_depthB\x0f\n\r_near_thermalB\x0b\n\t_near_imuB\r\n\x0b_generativeB\t\n\x07_rerank\"L\n\x07GroupBy\x12\x0c\n\x04path\x18\x01 \x03(\t\x12\x18\n\x10number_of_groups\x18\x02 \x01(\x05\x12\x19\n\x11objects_per_group\x18\x03 \x01(\x05\")\n\x06SortBy\x12\x11\n\tascending\x18\x01 \x01(\x08\x12\x0c\n\x04path\x18\x02 \x03(\t\"\xf4\x01\n\x0fMetadataRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\x08\x12\x0e\n\x06vector\x18\x02 \x01(\x08\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x04 \x01(\x08\x12\x10\n\x08\x64istance\x18\x05 \x01(\x08\x12\x11\n\tcertainty\x18\x06 \x01(\x08\x12\r\n\x05score\x18\x07 \x01(\x08\x12\x15\n\rexplain_score\x18\x08 \x01(\x08\x12\x15\n\ris_consistent\x18\t \x01(\x08\x12\x0f\n\x07vectors\x18\n \x03(\t\x12\x15\n\rquery_profile\x18\x0b \x01(\x08\"\xd1\x01\n\x11PropertiesRequest\x12\x1a\n\x12non_ref_properties\x18\x01 \x03(\t\x12\x39\n\x0eref_properties\x18\x02 \x03(\x0b\x32!.weaviate.v1.RefPropertiesRequest\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\x12$\n\x1creturn_all_nonref_properties\x18\x0b \x01(\x08\"\x8b\x01\n\x17ObjectPropertiesRequest\x12\x11\n\tprop_name\x18\x01 \x01(\t\x12\x1c\n\x14primitive_properties\x18\x02 \x03(\t\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\"\xb1\x01\n\x14RefPropertiesRequest\x12\x1a\n\x12reference_property\x18\x01 \x01(\t\x12\x32\n\nproperties\x18\x02 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequest\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequest\x12\x19\n\x11target_collection\x18\x04 \x01(\t\"8\n\x06Rerank\x12\x10\n\x08property\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_query\"\xf7\x02\n\x0bSearchReply\x12\x0c\n\x04took\x18\x01 \x01(\x02\x12*\n\x07results\x18\x02 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12*\n\x19generative_grouped_result\x18\x03 \x01(\tB\x02\x18\x01H\x00\x88\x01\x01\x12\x34\n\x10group_by_results\x18\x04 \x03(\x0b\x32\x1a.weaviate.v1.GroupByResult\x12\x46\n\x1agenerative_grouped_results\x18\x05 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x01\x88\x01\x01\x12\x35\n\rquery_profile\x18\x06 \x01(\x0b\x32\x19.weaviate.v1.QueryProfileH\x02\x88\x01\x01\x42\x1c\n\x1a_generative_grouped_resultB\x1d\n\x1b_generative_grouped_resultsB\x10\n\x0e_query_profile\"\x9e\x03\n\x0cQueryProfile\x12\x36\n\x06shards\x18\x01 \x03(\x0b\x32&.weaviate.v1.QueryProfile.ShardProfile\x1a\x86\x01\n\rSearchProfile\x12\x45\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32\x34.weaviate.v1.QueryProfile.SearchProfile.DetailsEntry\x1a.\n\x0c\x44\x65tailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xcc\x01\n\x0cShardProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04node\x18\x02 \x01(\t\x12\x46\n\x08searches\x18\x03 \x03(\x0b\x32\x34.weaviate.v1.QueryProfile.ShardProfile.SearchesEntry\x1aX\n\rSearchesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.weaviate.v1.QueryProfile.SearchProfile:\x02\x38\x01\"\x1c\n\x0bRerankReply\x12\r\n\x05score\x18\x01 \x01(\x01\"\xe9\x02\n\rGroupByResult\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cmin_distance\x18\x02 \x01(\x02\x12\x14\n\x0cmax_distance\x18\x03 \x01(\x02\x12\x19\n\x11number_of_objects\x18\x04 \x01(\x03\x12*\n\x07objects\x18\x05 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12-\n\x06rerank\x18\x06 \x01(\x0b\x32\x18.weaviate.v1.RerankReplyH\x00\x88\x01\x01\x12\x39\n\ngenerative\x18\x07 \x01(\x0b\x32\x1c.weaviate.v1.GenerativeReplyB\x02\x18\x01H\x01\x88\x01\x01\x12=\n\x11generative_result\x18\x08 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x02\x88\x01\x01\x42\t\n\x07_rerankB\r\n\x0b_generativeB\x14\n\x12_generative_result\"\xb7\x01\n\x0cSearchResult\x12\x31\n\nproperties\x18\x01 \x01(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12\x36\n\ngenerative\x18\x03 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x00\x88\x01\x01\x42\r\n\x0b_generative\"\xf7\x04\n\x0eMetadataResult\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x18\x01\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x03\x12\"\n\x1a\x63reation_time_unix_present\x18\x04 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x05 \x01(\x03\x12%\n\x1dlast_update_time_unix_present\x18\x06 \x01(\x08\x12\x10\n\x08\x64istance\x18\x07 \x01(\x02\x12\x18\n\x10\x64istance_present\x18\x08 \x01(\x08\x12\x11\n\tcertainty\x18\t \x01(\x02\x12\x19\n\x11\x63\x65rtainty_present\x18\n \x01(\x08\x12\r\n\x05score\x18\x0b \x01(\x02\x12\x15\n\rscore_present\x18\x0c \x01(\x08\x12\x15\n\rexplain_score\x18\r \x01(\t\x12\x1d\n\x15\x65xplain_score_present\x18\x0e \x01(\x08\x12\x1a\n\ris_consistent\x18\x0f \x01(\x08H\x00\x88\x01\x01\x12\x16\n\ngenerative\x18\x10 \x01(\tB\x02\x18\x01\x12\x1e\n\x12generative_present\x18\x11 \x01(\x08\x42\x02\x18\x01\x12\x1d\n\x15is_consistent_present\x18\x12 \x01(\x08\x12\x14\n\x0cvector_bytes\x18\x13 \x01(\x0c\x12\x13\n\x0bid_as_bytes\x18\x14 \x01(\x0c\x12\x14\n\x0crerank_score\x18\x15 \x01(\x01\x12\x1c\n\x14rerank_score_present\x18\x16 \x01(\x08\x12%\n\x07vectors\x18\x17 \x03(\x0b\x32\x14.weaviate.v1.VectorsB\x10\n\x0e_is_consistent\"\x88\x02\n\x10PropertiesResult\x12\x33\n\tref_props\x18\x02 \x03(\x0b\x32 .weaviate.v1.RefPropertiesResult\x12\x19\n\x11target_collection\x18\x03 \x01(\t\x12-\n\x08metadata\x18\x04 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12.\n\rnon_ref_props\x18\x0b \x01(\x0b\x32\x17.weaviate.v1.Properties\x12\x1b\n\x13ref_props_requested\x18\x0c \x01(\x08J\x04\x08\x01\x10\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"[\n\x13RefPropertiesResult\x12\x31\n\nproperties\x18\x01 \x03(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12\x11\n\tprop_name\x18\x02 \x01(\tBs\n#io.weaviate.client.grpc.protocol.v1B\x16WeaviateProtoSearchGetZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,6 +32,10 @@ _globals['_SEARCHREQUEST'].fields_by_name['uses_125_api']._serialized_options = b'\030\001' _globals['_SEARCHREPLY'].fields_by_name['generative_grouped_result']._loaded_options = None _globals['_SEARCHREPLY'].fields_by_name['generative_grouped_result']._serialized_options = b'\030\001' + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._loaded_options = None + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._serialized_options = b'8\001' + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._loaded_options = None + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._serialized_options = b'8\001' _globals['_GROUPBYRESULT'].fields_by_name['generative']._loaded_options = None _globals['_GROUPBYRESULT'].fields_by_name['generative']._serialized_options = b'\030\001' _globals['_METADATARESULT'].fields_by_name['vector']._loaded_options = None @@ -47,27 +51,37 @@ _globals['_SORTBY']._serialized_start=1632 _globals['_SORTBY']._serialized_end=1673 _globals['_METADATAREQUEST']._serialized_start=1676 - _globals['_METADATAREQUEST']._serialized_end=1897 - _globals['_PROPERTIESREQUEST']._serialized_start=1900 - _globals['_PROPERTIESREQUEST']._serialized_end=2109 - _globals['_OBJECTPROPERTIESREQUEST']._serialized_start=2112 - _globals['_OBJECTPROPERTIESREQUEST']._serialized_end=2251 - _globals['_REFPROPERTIESREQUEST']._serialized_start=2254 - _globals['_REFPROPERTIESREQUEST']._serialized_end=2431 - _globals['_RERANK']._serialized_start=2433 - _globals['_RERANK']._serialized_end=2489 - _globals['_SEARCHREPLY']._serialized_start=2492 - _globals['_SEARCHREPLY']._serialized_end=2794 - _globals['_RERANKREPLY']._serialized_start=2796 - _globals['_RERANKREPLY']._serialized_end=2824 - _globals['_GROUPBYRESULT']._serialized_start=2827 - _globals['_GROUPBYRESULT']._serialized_end=3188 - _globals['_SEARCHRESULT']._serialized_start=3191 - _globals['_SEARCHRESULT']._serialized_end=3374 - _globals['_METADATARESULT']._serialized_start=3377 - _globals['_METADATARESULT']._serialized_end=4008 - _globals['_PROPERTIESRESULT']._serialized_start=4011 - _globals['_PROPERTIESRESULT']._serialized_end=4275 - _globals['_REFPROPERTIESRESULT']._serialized_start=4277 - _globals['_REFPROPERTIESRESULT']._serialized_end=4368 + _globals['_METADATAREQUEST']._serialized_end=1920 + _globals['_PROPERTIESREQUEST']._serialized_start=1923 + _globals['_PROPERTIESREQUEST']._serialized_end=2132 + _globals['_OBJECTPROPERTIESREQUEST']._serialized_start=2135 + _globals['_OBJECTPROPERTIESREQUEST']._serialized_end=2274 + _globals['_REFPROPERTIESREQUEST']._serialized_start=2277 + _globals['_REFPROPERTIESREQUEST']._serialized_end=2454 + _globals['_RERANK']._serialized_start=2456 + _globals['_RERANK']._serialized_end=2512 + _globals['_SEARCHREPLY']._serialized_start=2515 + _globals['_SEARCHREPLY']._serialized_end=2890 + _globals['_QUERYPROFILE']._serialized_start=2893 + _globals['_QUERYPROFILE']._serialized_end=3307 + _globals['_QUERYPROFILE_SEARCHPROFILE']._serialized_start=2966 + _globals['_QUERYPROFILE_SEARCHPROFILE']._serialized_end=3100 + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._serialized_start=3054 + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._serialized_end=3100 + _globals['_QUERYPROFILE_SHARDPROFILE']._serialized_start=3103 + _globals['_QUERYPROFILE_SHARDPROFILE']._serialized_end=3307 + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._serialized_start=3219 + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._serialized_end=3307 + _globals['_RERANKREPLY']._serialized_start=3309 + _globals['_RERANKREPLY']._serialized_end=3337 + _globals['_GROUPBYRESULT']._serialized_start=3340 + _globals['_GROUPBYRESULT']._serialized_end=3701 + _globals['_SEARCHRESULT']._serialized_start=3704 + _globals['_SEARCHRESULT']._serialized_end=3887 + _globals['_METADATARESULT']._serialized_start=3890 + _globals['_METADATARESULT']._serialized_end=4521 + _globals['_PROPERTIESRESULT']._serialized_start=4524 + _globals['_PROPERTIESRESULT']._serialized_end=4788 + _globals['_REFPROPERTIESRESULT']._serialized_start=4790 + _globals['_REFPROPERTIESRESULT']._serialized_end=4881 # @@protoc_insertion_point(module_scope) diff --git a/weaviate/proto/v1/v5261/v1/search_get_pb2.pyi b/weaviate/proto/v1/v5261/v1/search_get_pb2.pyi index 4a28237d9..783ca3564 100644 --- a/weaviate/proto/v1/v5261/v1/search_get_pb2.pyi +++ b/weaviate/proto/v1/v5261/v1/search_get_pb2.pyi @@ -88,7 +88,7 @@ class SortBy(_message.Message): def __init__(self, ascending: bool = ..., path: _Optional[_Iterable[str]] = ...) -> None: ... class MetadataRequest(_message.Message): - __slots__ = ("uuid", "vector", "creation_time_unix", "last_update_time_unix", "distance", "certainty", "score", "explain_score", "is_consistent", "vectors") + __slots__ = ("uuid", "vector", "creation_time_unix", "last_update_time_unix", "distance", "certainty", "score", "explain_score", "is_consistent", "vectors", "query_profile") UUID_FIELD_NUMBER: _ClassVar[int] VECTOR_FIELD_NUMBER: _ClassVar[int] CREATION_TIME_UNIX_FIELD_NUMBER: _ClassVar[int] @@ -99,6 +99,7 @@ class MetadataRequest(_message.Message): EXPLAIN_SCORE_FIELD_NUMBER: _ClassVar[int] IS_CONSISTENT_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] + QUERY_PROFILE_FIELD_NUMBER: _ClassVar[int] uuid: bool vector: bool creation_time_unix: bool @@ -109,7 +110,8 @@ class MetadataRequest(_message.Message): explain_score: bool is_consistent: bool vectors: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, uuid: bool = ..., vector: bool = ..., creation_time_unix: bool = ..., last_update_time_unix: bool = ..., distance: bool = ..., certainty: bool = ..., score: bool = ..., explain_score: bool = ..., is_consistent: bool = ..., vectors: _Optional[_Iterable[str]] = ...) -> None: ... + query_profile: bool + def __init__(self, uuid: bool = ..., vector: bool = ..., creation_time_unix: bool = ..., last_update_time_unix: bool = ..., distance: bool = ..., certainty: bool = ..., score: bool = ..., explain_score: bool = ..., is_consistent: bool = ..., vectors: _Optional[_Iterable[str]] = ..., query_profile: bool = ...) -> None: ... class PropertiesRequest(_message.Message): __slots__ = ("non_ref_properties", "ref_properties", "object_properties", "return_all_nonref_properties") @@ -154,18 +156,54 @@ class Rerank(_message.Message): def __init__(self, property: _Optional[str] = ..., query: _Optional[str] = ...) -> None: ... class SearchReply(_message.Message): - __slots__ = ("took", "results", "generative_grouped_result", "group_by_results", "generative_grouped_results") + __slots__ = ("took", "results", "generative_grouped_result", "group_by_results", "generative_grouped_results", "query_profile") TOOK_FIELD_NUMBER: _ClassVar[int] RESULTS_FIELD_NUMBER: _ClassVar[int] GENERATIVE_GROUPED_RESULT_FIELD_NUMBER: _ClassVar[int] GROUP_BY_RESULTS_FIELD_NUMBER: _ClassVar[int] GENERATIVE_GROUPED_RESULTS_FIELD_NUMBER: _ClassVar[int] + QUERY_PROFILE_FIELD_NUMBER: _ClassVar[int] took: float results: _containers.RepeatedCompositeFieldContainer[SearchResult] generative_grouped_result: str group_by_results: _containers.RepeatedCompositeFieldContainer[GroupByResult] generative_grouped_results: _generative_pb2.GenerativeResult - def __init__(self, took: _Optional[float] = ..., results: _Optional[_Iterable[_Union[SearchResult, _Mapping]]] = ..., generative_grouped_result: _Optional[str] = ..., group_by_results: _Optional[_Iterable[_Union[GroupByResult, _Mapping]]] = ..., generative_grouped_results: _Optional[_Union[_generative_pb2.GenerativeResult, _Mapping]] = ...) -> None: ... + query_profile: QueryProfile + def __init__(self, took: _Optional[float] = ..., results: _Optional[_Iterable[_Union[SearchResult, _Mapping]]] = ..., generative_grouped_result: _Optional[str] = ..., group_by_results: _Optional[_Iterable[_Union[GroupByResult, _Mapping]]] = ..., generative_grouped_results: _Optional[_Union[_generative_pb2.GenerativeResult, _Mapping]] = ..., query_profile: _Optional[_Union[QueryProfile, _Mapping]] = ...) -> None: ... + +class QueryProfile(_message.Message): + __slots__ = ("shards",) + class SearchProfile(_message.Message): + __slots__ = ("details",) + class DetailsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + DETAILS_FIELD_NUMBER: _ClassVar[int] + details: _containers.ScalarMap[str, str] + def __init__(self, details: _Optional[_Mapping[str, str]] = ...) -> None: ... + class ShardProfile(_message.Message): + __slots__ = ("name", "node", "searches") + class SearchesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: QueryProfile.SearchProfile + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[QueryProfile.SearchProfile, _Mapping]] = ...) -> None: ... + NAME_FIELD_NUMBER: _ClassVar[int] + NODE_FIELD_NUMBER: _ClassVar[int] + SEARCHES_FIELD_NUMBER: _ClassVar[int] + name: str + node: str + searches: _containers.MessageMap[str, QueryProfile.SearchProfile] + def __init__(self, name: _Optional[str] = ..., node: _Optional[str] = ..., searches: _Optional[_Mapping[str, QueryProfile.SearchProfile]] = ...) -> None: ... + SHARDS_FIELD_NUMBER: _ClassVar[int] + shards: _containers.RepeatedCompositeFieldContainer[QueryProfile.ShardProfile] + def __init__(self, shards: _Optional[_Iterable[_Union[QueryProfile.ShardProfile, _Mapping]]] = ...) -> None: ... class RerankReply(_message.Message): __slots__ = ("score",) diff --git a/weaviate/proto/v1/v6300/v1/search_get_pb2.py b/weaviate/proto/v1/v6300/v1/search_get_pb2.py index 88dfb5992..1b38e4fb6 100644 --- a/weaviate/proto/v1/v6300/v1/search_get_pb2.py +++ b/weaviate/proto/v1/v6300/v1/search_get_pb2.py @@ -28,7 +28,7 @@ from weaviate.proto.v1.v6300.v1 import properties_pb2 as v1_dot_properties__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13v1/search_get.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\x1a\x14v1/base_search.proto\x1a\x13v1/generative.proto\x1a\x13v1/properties.proto\"\x9c\x0b\n\rSearchRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0e\n\x06tenant\x18\n \x01(\t\x12=\n\x11\x63onsistency_level\x18\x0b \x01(\x0e\x32\x1d.weaviate.v1.ConsistencyLevelH\x00\x88\x01\x01\x12\x37\n\nproperties\x18\x14 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequestH\x01\x88\x01\x01\x12\x33\n\x08metadata\x18\x15 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequestH\x02\x88\x01\x01\x12+\n\x08group_by\x18\x16 \x01(\x0b\x32\x14.weaviate.v1.GroupByH\x03\x88\x01\x01\x12\r\n\x05limit\x18\x1e \x01(\r\x12\x0e\n\x06offset\x18\x1f \x01(\r\x12\x0f\n\x07\x61utocut\x18 \x01(\r\x12\r\n\x05\x61\x66ter\x18! \x01(\t\x12$\n\x07sort_by\x18\" \x03(\x0b\x32\x13.weaviate.v1.SortBy\x12*\n\x07\x66ilters\x18( \x01(\x0b\x32\x14.weaviate.v1.FiltersH\x04\x88\x01\x01\x12/\n\rhybrid_search\x18) \x01(\x0b\x32\x13.weaviate.v1.HybridH\x05\x88\x01\x01\x12+\n\x0b\x62m25_search\x18* \x01(\x0b\x32\x11.weaviate.v1.BM25H\x06\x88\x01\x01\x12\x31\n\x0bnear_vector\x18+ \x01(\x0b\x32\x17.weaviate.v1.NearVectorH\x07\x88\x01\x01\x12\x31\n\x0bnear_object\x18, \x01(\x0b\x32\x17.weaviate.v1.NearObjectH\x08\x88\x01\x01\x12\x33\n\tnear_text\x18- \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearchH\t\x88\x01\x01\x12\x35\n\nnear_image\x18. \x01(\x0b\x32\x1c.weaviate.v1.NearImageSearchH\n\x88\x01\x01\x12\x35\n\nnear_audio\x18/ \x01(\x0b\x32\x1c.weaviate.v1.NearAudioSearchH\x0b\x88\x01\x01\x12\x35\n\nnear_video\x18\x30 \x01(\x0b\x32\x1c.weaviate.v1.NearVideoSearchH\x0c\x88\x01\x01\x12\x35\n\nnear_depth\x18\x31 \x01(\x0b\x32\x1c.weaviate.v1.NearDepthSearchH\r\x88\x01\x01\x12\x39\n\x0cnear_thermal\x18\x32 \x01(\x0b\x32\x1e.weaviate.v1.NearThermalSearchH\x0e\x88\x01\x01\x12\x31\n\x08near_imu\x18\x33 \x01(\x0b\x32\x1a.weaviate.v1.NearIMUSearchH\x0f\x88\x01\x01\x12\x36\n\ngenerative\x18< \x01(\x0b\x32\x1d.weaviate.v1.GenerativeSearchH\x10\x88\x01\x01\x12(\n\x06rerank\x18= \x01(\x0b\x32\x13.weaviate.v1.RerankH\x11\x88\x01\x01\x12\x18\n\x0cuses_123_api\x18\x64 \x01(\x08\x42\x02\x18\x01\x12\x18\n\x0cuses_125_api\x18\x65 \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0cuses_127_api\x18\x66 \x01(\x08\x42\x14\n\x12_consistency_levelB\r\n\x0b_propertiesB\x0b\n\t_metadataB\x0b\n\t_group_byB\n\n\x08_filtersB\x10\n\x0e_hybrid_searchB\x0e\n\x0c_bm25_searchB\x0e\n\x0c_near_vectorB\x0e\n\x0c_near_objectB\x0c\n\n_near_textB\r\n\x0b_near_imageB\r\n\x0b_near_audioB\r\n\x0b_near_videoB\r\n\x0b_near_depthB\x0f\n\r_near_thermalB\x0b\n\t_near_imuB\r\n\x0b_generativeB\t\n\x07_rerank\"L\n\x07GroupBy\x12\x0c\n\x04path\x18\x01 \x03(\t\x12\x18\n\x10number_of_groups\x18\x02 \x01(\x05\x12\x19\n\x11objects_per_group\x18\x03 \x01(\x05\")\n\x06SortBy\x12\x11\n\tascending\x18\x01 \x01(\x08\x12\x0c\n\x04path\x18\x02 \x03(\t\"\xdd\x01\n\x0fMetadataRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\x08\x12\x0e\n\x06vector\x18\x02 \x01(\x08\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x04 \x01(\x08\x12\x10\n\x08\x64istance\x18\x05 \x01(\x08\x12\x11\n\tcertainty\x18\x06 \x01(\x08\x12\r\n\x05score\x18\x07 \x01(\x08\x12\x15\n\rexplain_score\x18\x08 \x01(\x08\x12\x15\n\ris_consistent\x18\t \x01(\x08\x12\x0f\n\x07vectors\x18\n \x03(\t\"\xd1\x01\n\x11PropertiesRequest\x12\x1a\n\x12non_ref_properties\x18\x01 \x03(\t\x12\x39\n\x0eref_properties\x18\x02 \x03(\x0b\x32!.weaviate.v1.RefPropertiesRequest\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\x12$\n\x1creturn_all_nonref_properties\x18\x0b \x01(\x08\"\x8b\x01\n\x17ObjectPropertiesRequest\x12\x11\n\tprop_name\x18\x01 \x01(\t\x12\x1c\n\x14primitive_properties\x18\x02 \x03(\t\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\"\xb1\x01\n\x14RefPropertiesRequest\x12\x1a\n\x12reference_property\x18\x01 \x01(\t\x12\x32\n\nproperties\x18\x02 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequest\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequest\x12\x19\n\x11target_collection\x18\x04 \x01(\t\"8\n\x06Rerank\x12\x10\n\x08property\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_query\"\xae\x02\n\x0bSearchReply\x12\x0c\n\x04took\x18\x01 \x01(\x02\x12*\n\x07results\x18\x02 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12*\n\x19generative_grouped_result\x18\x03 \x01(\tB\x02\x18\x01H\x00\x88\x01\x01\x12\x34\n\x10group_by_results\x18\x04 \x03(\x0b\x32\x1a.weaviate.v1.GroupByResult\x12\x46\n\x1agenerative_grouped_results\x18\x05 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x01\x88\x01\x01\x42\x1c\n\x1a_generative_grouped_resultB\x1d\n\x1b_generative_grouped_results\"\x1c\n\x0bRerankReply\x12\r\n\x05score\x18\x01 \x01(\x01\"\xe9\x02\n\rGroupByResult\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cmin_distance\x18\x02 \x01(\x02\x12\x14\n\x0cmax_distance\x18\x03 \x01(\x02\x12\x19\n\x11number_of_objects\x18\x04 \x01(\x03\x12*\n\x07objects\x18\x05 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12-\n\x06rerank\x18\x06 \x01(\x0b\x32\x18.weaviate.v1.RerankReplyH\x00\x88\x01\x01\x12\x39\n\ngenerative\x18\x07 \x01(\x0b\x32\x1c.weaviate.v1.GenerativeReplyB\x02\x18\x01H\x01\x88\x01\x01\x12=\n\x11generative_result\x18\x08 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x02\x88\x01\x01\x42\t\n\x07_rerankB\r\n\x0b_generativeB\x14\n\x12_generative_result\"\xb7\x01\n\x0cSearchResult\x12\x31\n\nproperties\x18\x01 \x01(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12\x36\n\ngenerative\x18\x03 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x00\x88\x01\x01\x42\r\n\x0b_generative\"\xf7\x04\n\x0eMetadataResult\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x18\x01\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x03\x12\"\n\x1a\x63reation_time_unix_present\x18\x04 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x05 \x01(\x03\x12%\n\x1dlast_update_time_unix_present\x18\x06 \x01(\x08\x12\x10\n\x08\x64istance\x18\x07 \x01(\x02\x12\x18\n\x10\x64istance_present\x18\x08 \x01(\x08\x12\x11\n\tcertainty\x18\t \x01(\x02\x12\x19\n\x11\x63\x65rtainty_present\x18\n \x01(\x08\x12\r\n\x05score\x18\x0b \x01(\x02\x12\x15\n\rscore_present\x18\x0c \x01(\x08\x12\x15\n\rexplain_score\x18\r \x01(\t\x12\x1d\n\x15\x65xplain_score_present\x18\x0e \x01(\x08\x12\x1a\n\ris_consistent\x18\x0f \x01(\x08H\x00\x88\x01\x01\x12\x16\n\ngenerative\x18\x10 \x01(\tB\x02\x18\x01\x12\x1e\n\x12generative_present\x18\x11 \x01(\x08\x42\x02\x18\x01\x12\x1d\n\x15is_consistent_present\x18\x12 \x01(\x08\x12\x14\n\x0cvector_bytes\x18\x13 \x01(\x0c\x12\x13\n\x0bid_as_bytes\x18\x14 \x01(\x0c\x12\x14\n\x0crerank_score\x18\x15 \x01(\x01\x12\x1c\n\x14rerank_score_present\x18\x16 \x01(\x08\x12%\n\x07vectors\x18\x17 \x03(\x0b\x32\x14.weaviate.v1.VectorsB\x10\n\x0e_is_consistent\"\x88\x02\n\x10PropertiesResult\x12\x33\n\tref_props\x18\x02 \x03(\x0b\x32 .weaviate.v1.RefPropertiesResult\x12\x19\n\x11target_collection\x18\x03 \x01(\t\x12-\n\x08metadata\x18\x04 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12.\n\rnon_ref_props\x18\x0b \x01(\x0b\x32\x17.weaviate.v1.Properties\x12\x1b\n\x13ref_props_requested\x18\x0c \x01(\x08J\x04\x08\x01\x10\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"[\n\x13RefPropertiesResult\x12\x31\n\nproperties\x18\x01 \x03(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12\x11\n\tprop_name\x18\x02 \x01(\tBs\n#io.weaviate.client.grpc.protocol.v1B\x16WeaviateProtoSearchGetZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13v1/search_get.proto\x12\x0bweaviate.v1\x1a\rv1/base.proto\x1a\x14v1/base_search.proto\x1a\x13v1/generative.proto\x1a\x13v1/properties.proto\"\x9c\x0b\n\rSearchRequest\x12\x12\n\ncollection\x18\x01 \x01(\t\x12\x0e\n\x06tenant\x18\n \x01(\t\x12=\n\x11\x63onsistency_level\x18\x0b \x01(\x0e\x32\x1d.weaviate.v1.ConsistencyLevelH\x00\x88\x01\x01\x12\x37\n\nproperties\x18\x14 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequestH\x01\x88\x01\x01\x12\x33\n\x08metadata\x18\x15 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequestH\x02\x88\x01\x01\x12+\n\x08group_by\x18\x16 \x01(\x0b\x32\x14.weaviate.v1.GroupByH\x03\x88\x01\x01\x12\r\n\x05limit\x18\x1e \x01(\r\x12\x0e\n\x06offset\x18\x1f \x01(\r\x12\x0f\n\x07\x61utocut\x18 \x01(\r\x12\r\n\x05\x61\x66ter\x18! \x01(\t\x12$\n\x07sort_by\x18\" \x03(\x0b\x32\x13.weaviate.v1.SortBy\x12*\n\x07\x66ilters\x18( \x01(\x0b\x32\x14.weaviate.v1.FiltersH\x04\x88\x01\x01\x12/\n\rhybrid_search\x18) \x01(\x0b\x32\x13.weaviate.v1.HybridH\x05\x88\x01\x01\x12+\n\x0b\x62m25_search\x18* \x01(\x0b\x32\x11.weaviate.v1.BM25H\x06\x88\x01\x01\x12\x31\n\x0bnear_vector\x18+ \x01(\x0b\x32\x17.weaviate.v1.NearVectorH\x07\x88\x01\x01\x12\x31\n\x0bnear_object\x18, \x01(\x0b\x32\x17.weaviate.v1.NearObjectH\x08\x88\x01\x01\x12\x33\n\tnear_text\x18- \x01(\x0b\x32\x1b.weaviate.v1.NearTextSearchH\t\x88\x01\x01\x12\x35\n\nnear_image\x18. \x01(\x0b\x32\x1c.weaviate.v1.NearImageSearchH\n\x88\x01\x01\x12\x35\n\nnear_audio\x18/ \x01(\x0b\x32\x1c.weaviate.v1.NearAudioSearchH\x0b\x88\x01\x01\x12\x35\n\nnear_video\x18\x30 \x01(\x0b\x32\x1c.weaviate.v1.NearVideoSearchH\x0c\x88\x01\x01\x12\x35\n\nnear_depth\x18\x31 \x01(\x0b\x32\x1c.weaviate.v1.NearDepthSearchH\r\x88\x01\x01\x12\x39\n\x0cnear_thermal\x18\x32 \x01(\x0b\x32\x1e.weaviate.v1.NearThermalSearchH\x0e\x88\x01\x01\x12\x31\n\x08near_imu\x18\x33 \x01(\x0b\x32\x1a.weaviate.v1.NearIMUSearchH\x0f\x88\x01\x01\x12\x36\n\ngenerative\x18< \x01(\x0b\x32\x1d.weaviate.v1.GenerativeSearchH\x10\x88\x01\x01\x12(\n\x06rerank\x18= \x01(\x0b\x32\x13.weaviate.v1.RerankH\x11\x88\x01\x01\x12\x18\n\x0cuses_123_api\x18\x64 \x01(\x08\x42\x02\x18\x01\x12\x18\n\x0cuses_125_api\x18\x65 \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0cuses_127_api\x18\x66 \x01(\x08\x42\x14\n\x12_consistency_levelB\r\n\x0b_propertiesB\x0b\n\t_metadataB\x0b\n\t_group_byB\n\n\x08_filtersB\x10\n\x0e_hybrid_searchB\x0e\n\x0c_bm25_searchB\x0e\n\x0c_near_vectorB\x0e\n\x0c_near_objectB\x0c\n\n_near_textB\r\n\x0b_near_imageB\r\n\x0b_near_audioB\r\n\x0b_near_videoB\r\n\x0b_near_depthB\x0f\n\r_near_thermalB\x0b\n\t_near_imuB\r\n\x0b_generativeB\t\n\x07_rerank\"L\n\x07GroupBy\x12\x0c\n\x04path\x18\x01 \x03(\t\x12\x18\n\x10number_of_groups\x18\x02 \x01(\x05\x12\x19\n\x11objects_per_group\x18\x03 \x01(\x05\")\n\x06SortBy\x12\x11\n\tascending\x18\x01 \x01(\x08\x12\x0c\n\x04path\x18\x02 \x03(\t\"\xf4\x01\n\x0fMetadataRequest\x12\x0c\n\x04uuid\x18\x01 \x01(\x08\x12\x0e\n\x06vector\x18\x02 \x01(\x08\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x04 \x01(\x08\x12\x10\n\x08\x64istance\x18\x05 \x01(\x08\x12\x11\n\tcertainty\x18\x06 \x01(\x08\x12\r\n\x05score\x18\x07 \x01(\x08\x12\x15\n\rexplain_score\x18\x08 \x01(\x08\x12\x15\n\ris_consistent\x18\t \x01(\x08\x12\x0f\n\x07vectors\x18\n \x03(\t\x12\x15\n\rquery_profile\x18\x0b \x01(\x08\"\xd1\x01\n\x11PropertiesRequest\x12\x1a\n\x12non_ref_properties\x18\x01 \x03(\t\x12\x39\n\x0eref_properties\x18\x02 \x03(\x0b\x32!.weaviate.v1.RefPropertiesRequest\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\x12$\n\x1creturn_all_nonref_properties\x18\x0b \x01(\x08\"\x8b\x01\n\x17ObjectPropertiesRequest\x12\x11\n\tprop_name\x18\x01 \x01(\t\x12\x1c\n\x14primitive_properties\x18\x02 \x03(\t\x12?\n\x11object_properties\x18\x03 \x03(\x0b\x32$.weaviate.v1.ObjectPropertiesRequest\"\xb1\x01\n\x14RefPropertiesRequest\x12\x1a\n\x12reference_property\x18\x01 \x01(\t\x12\x32\n\nproperties\x18\x02 \x01(\x0b\x32\x1e.weaviate.v1.PropertiesRequest\x12.\n\x08metadata\x18\x03 \x01(\x0b\x32\x1c.weaviate.v1.MetadataRequest\x12\x19\n\x11target_collection\x18\x04 \x01(\t\"8\n\x06Rerank\x12\x10\n\x08property\x18\x01 \x01(\t\x12\x12\n\x05query\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_query\"\xf7\x02\n\x0bSearchReply\x12\x0c\n\x04took\x18\x01 \x01(\x02\x12*\n\x07results\x18\x02 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12*\n\x19generative_grouped_result\x18\x03 \x01(\tB\x02\x18\x01H\x00\x88\x01\x01\x12\x34\n\x10group_by_results\x18\x04 \x03(\x0b\x32\x1a.weaviate.v1.GroupByResult\x12\x46\n\x1agenerative_grouped_results\x18\x05 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x01\x88\x01\x01\x12\x35\n\rquery_profile\x18\x06 \x01(\x0b\x32\x19.weaviate.v1.QueryProfileH\x02\x88\x01\x01\x42\x1c\n\x1a_generative_grouped_resultB\x1d\n\x1b_generative_grouped_resultsB\x10\n\x0e_query_profile\"\x9e\x03\n\x0cQueryProfile\x12\x36\n\x06shards\x18\x01 \x03(\x0b\x32&.weaviate.v1.QueryProfile.ShardProfile\x1a\x86\x01\n\rSearchProfile\x12\x45\n\x07\x64\x65tails\x18\x01 \x03(\x0b\x32\x34.weaviate.v1.QueryProfile.SearchProfile.DetailsEntry\x1a.\n\x0c\x44\x65tailsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xcc\x01\n\x0cShardProfile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04node\x18\x02 \x01(\t\x12\x46\n\x08searches\x18\x03 \x03(\x0b\x32\x34.weaviate.v1.QueryProfile.ShardProfile.SearchesEntry\x1aX\n\rSearchesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x36\n\x05value\x18\x02 \x01(\x0b\x32\'.weaviate.v1.QueryProfile.SearchProfile:\x02\x38\x01\"\x1c\n\x0bRerankReply\x12\r\n\x05score\x18\x01 \x01(\x01\"\xe9\x02\n\rGroupByResult\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cmin_distance\x18\x02 \x01(\x02\x12\x14\n\x0cmax_distance\x18\x03 \x01(\x02\x12\x19\n\x11number_of_objects\x18\x04 \x01(\x03\x12*\n\x07objects\x18\x05 \x03(\x0b\x32\x19.weaviate.v1.SearchResult\x12-\n\x06rerank\x18\x06 \x01(\x0b\x32\x18.weaviate.v1.RerankReplyH\x00\x88\x01\x01\x12\x39\n\ngenerative\x18\x07 \x01(\x0b\x32\x1c.weaviate.v1.GenerativeReplyB\x02\x18\x01H\x01\x88\x01\x01\x12=\n\x11generative_result\x18\x08 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x02\x88\x01\x01\x42\t\n\x07_rerankB\r\n\x0b_generativeB\x14\n\x12_generative_result\"\xb7\x01\n\x0cSearchResult\x12\x31\n\nproperties\x18\x01 \x01(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12-\n\x08metadata\x18\x02 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12\x36\n\ngenerative\x18\x03 \x01(\x0b\x32\x1d.weaviate.v1.GenerativeResultH\x00\x88\x01\x01\x42\r\n\x0b_generative\"\xf7\x04\n\x0eMetadataResult\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\x06vector\x18\x02 \x03(\x02\x42\x02\x18\x01\x12\x1a\n\x12\x63reation_time_unix\x18\x03 \x01(\x03\x12\"\n\x1a\x63reation_time_unix_present\x18\x04 \x01(\x08\x12\x1d\n\x15last_update_time_unix\x18\x05 \x01(\x03\x12%\n\x1dlast_update_time_unix_present\x18\x06 \x01(\x08\x12\x10\n\x08\x64istance\x18\x07 \x01(\x02\x12\x18\n\x10\x64istance_present\x18\x08 \x01(\x08\x12\x11\n\tcertainty\x18\t \x01(\x02\x12\x19\n\x11\x63\x65rtainty_present\x18\n \x01(\x08\x12\r\n\x05score\x18\x0b \x01(\x02\x12\x15\n\rscore_present\x18\x0c \x01(\x08\x12\x15\n\rexplain_score\x18\r \x01(\t\x12\x1d\n\x15\x65xplain_score_present\x18\x0e \x01(\x08\x12\x1a\n\ris_consistent\x18\x0f \x01(\x08H\x00\x88\x01\x01\x12\x16\n\ngenerative\x18\x10 \x01(\tB\x02\x18\x01\x12\x1e\n\x12generative_present\x18\x11 \x01(\x08\x42\x02\x18\x01\x12\x1d\n\x15is_consistent_present\x18\x12 \x01(\x08\x12\x14\n\x0cvector_bytes\x18\x13 \x01(\x0c\x12\x13\n\x0bid_as_bytes\x18\x14 \x01(\x0c\x12\x14\n\x0crerank_score\x18\x15 \x01(\x01\x12\x1c\n\x14rerank_score_present\x18\x16 \x01(\x08\x12%\n\x07vectors\x18\x17 \x03(\x0b\x32\x14.weaviate.v1.VectorsB\x10\n\x0e_is_consistent\"\x88\x02\n\x10PropertiesResult\x12\x33\n\tref_props\x18\x02 \x03(\x0b\x32 .weaviate.v1.RefPropertiesResult\x12\x19\n\x11target_collection\x18\x03 \x01(\t\x12-\n\x08metadata\x18\x04 \x01(\x0b\x32\x1b.weaviate.v1.MetadataResult\x12.\n\rnon_ref_props\x18\x0b \x01(\x0b\x32\x17.weaviate.v1.Properties\x12\x1b\n\x13ref_props_requested\x18\x0c \x01(\x08J\x04\x08\x01\x10\x02J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tJ\x04\x08\t\x10\nJ\x04\x08\n\x10\x0b\"[\n\x13RefPropertiesResult\x12\x31\n\nproperties\x18\x01 \x03(\x0b\x32\x1d.weaviate.v1.PropertiesResult\x12\x11\n\tprop_name\x18\x02 \x01(\tBs\n#io.weaviate.client.grpc.protocol.v1B\x16WeaviateProtoSearchGetZ4github.com/weaviate/weaviate/grpc/generated;protocolb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,6 +42,10 @@ _globals['_SEARCHREQUEST'].fields_by_name['uses_125_api']._serialized_options = b'\030\001' _globals['_SEARCHREPLY'].fields_by_name['generative_grouped_result']._loaded_options = None _globals['_SEARCHREPLY'].fields_by_name['generative_grouped_result']._serialized_options = b'\030\001' + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._loaded_options = None + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._serialized_options = b'8\001' + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._loaded_options = None + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._serialized_options = b'8\001' _globals['_GROUPBYRESULT'].fields_by_name['generative']._loaded_options = None _globals['_GROUPBYRESULT'].fields_by_name['generative']._serialized_options = b'\030\001' _globals['_METADATARESULT'].fields_by_name['vector']._loaded_options = None @@ -57,27 +61,37 @@ _globals['_SORTBY']._serialized_start=1632 _globals['_SORTBY']._serialized_end=1673 _globals['_METADATAREQUEST']._serialized_start=1676 - _globals['_METADATAREQUEST']._serialized_end=1897 - _globals['_PROPERTIESREQUEST']._serialized_start=1900 - _globals['_PROPERTIESREQUEST']._serialized_end=2109 - _globals['_OBJECTPROPERTIESREQUEST']._serialized_start=2112 - _globals['_OBJECTPROPERTIESREQUEST']._serialized_end=2251 - _globals['_REFPROPERTIESREQUEST']._serialized_start=2254 - _globals['_REFPROPERTIESREQUEST']._serialized_end=2431 - _globals['_RERANK']._serialized_start=2433 - _globals['_RERANK']._serialized_end=2489 - _globals['_SEARCHREPLY']._serialized_start=2492 - _globals['_SEARCHREPLY']._serialized_end=2794 - _globals['_RERANKREPLY']._serialized_start=2796 - _globals['_RERANKREPLY']._serialized_end=2824 - _globals['_GROUPBYRESULT']._serialized_start=2827 - _globals['_GROUPBYRESULT']._serialized_end=3188 - _globals['_SEARCHRESULT']._serialized_start=3191 - _globals['_SEARCHRESULT']._serialized_end=3374 - _globals['_METADATARESULT']._serialized_start=3377 - _globals['_METADATARESULT']._serialized_end=4008 - _globals['_PROPERTIESRESULT']._serialized_start=4011 - _globals['_PROPERTIESRESULT']._serialized_end=4275 - _globals['_REFPROPERTIESRESULT']._serialized_start=4277 - _globals['_REFPROPERTIESRESULT']._serialized_end=4368 + _globals['_METADATAREQUEST']._serialized_end=1920 + _globals['_PROPERTIESREQUEST']._serialized_start=1923 + _globals['_PROPERTIESREQUEST']._serialized_end=2132 + _globals['_OBJECTPROPERTIESREQUEST']._serialized_start=2135 + _globals['_OBJECTPROPERTIESREQUEST']._serialized_end=2274 + _globals['_REFPROPERTIESREQUEST']._serialized_start=2277 + _globals['_REFPROPERTIESREQUEST']._serialized_end=2454 + _globals['_RERANK']._serialized_start=2456 + _globals['_RERANK']._serialized_end=2512 + _globals['_SEARCHREPLY']._serialized_start=2515 + _globals['_SEARCHREPLY']._serialized_end=2890 + _globals['_QUERYPROFILE']._serialized_start=2893 + _globals['_QUERYPROFILE']._serialized_end=3307 + _globals['_QUERYPROFILE_SEARCHPROFILE']._serialized_start=2966 + _globals['_QUERYPROFILE_SEARCHPROFILE']._serialized_end=3100 + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._serialized_start=3054 + _globals['_QUERYPROFILE_SEARCHPROFILE_DETAILSENTRY']._serialized_end=3100 + _globals['_QUERYPROFILE_SHARDPROFILE']._serialized_start=3103 + _globals['_QUERYPROFILE_SHARDPROFILE']._serialized_end=3307 + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._serialized_start=3219 + _globals['_QUERYPROFILE_SHARDPROFILE_SEARCHESENTRY']._serialized_end=3307 + _globals['_RERANKREPLY']._serialized_start=3309 + _globals['_RERANKREPLY']._serialized_end=3337 + _globals['_GROUPBYRESULT']._serialized_start=3340 + _globals['_GROUPBYRESULT']._serialized_end=3701 + _globals['_SEARCHRESULT']._serialized_start=3704 + _globals['_SEARCHRESULT']._serialized_end=3887 + _globals['_METADATARESULT']._serialized_start=3890 + _globals['_METADATARESULT']._serialized_end=4521 + _globals['_PROPERTIESRESULT']._serialized_start=4524 + _globals['_PROPERTIESRESULT']._serialized_end=4788 + _globals['_REFPROPERTIESRESULT']._serialized_start=4790 + _globals['_REFPROPERTIESRESULT']._serialized_end=4881 # @@protoc_insertion_point(module_scope) diff --git a/weaviate/proto/v1/v6300/v1/search_get_pb2.pyi b/weaviate/proto/v1/v6300/v1/search_get_pb2.pyi index 8dd3cb881..f631fb396 100644 --- a/weaviate/proto/v1/v6300/v1/search_get_pb2.pyi +++ b/weaviate/proto/v1/v6300/v1/search_get_pb2.pyi @@ -89,7 +89,7 @@ class SortBy(_message.Message): def __init__(self, ascending: bool = ..., path: _Optional[_Iterable[str]] = ...) -> None: ... class MetadataRequest(_message.Message): - __slots__ = ("uuid", "vector", "creation_time_unix", "last_update_time_unix", "distance", "certainty", "score", "explain_score", "is_consistent", "vectors") + __slots__ = ("uuid", "vector", "creation_time_unix", "last_update_time_unix", "distance", "certainty", "score", "explain_score", "is_consistent", "vectors", "query_profile") UUID_FIELD_NUMBER: _ClassVar[int] VECTOR_FIELD_NUMBER: _ClassVar[int] CREATION_TIME_UNIX_FIELD_NUMBER: _ClassVar[int] @@ -100,6 +100,7 @@ class MetadataRequest(_message.Message): EXPLAIN_SCORE_FIELD_NUMBER: _ClassVar[int] IS_CONSISTENT_FIELD_NUMBER: _ClassVar[int] VECTORS_FIELD_NUMBER: _ClassVar[int] + QUERY_PROFILE_FIELD_NUMBER: _ClassVar[int] uuid: bool vector: bool creation_time_unix: bool @@ -110,7 +111,8 @@ class MetadataRequest(_message.Message): explain_score: bool is_consistent: bool vectors: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, uuid: bool = ..., vector: bool = ..., creation_time_unix: bool = ..., last_update_time_unix: bool = ..., distance: bool = ..., certainty: bool = ..., score: bool = ..., explain_score: bool = ..., is_consistent: bool = ..., vectors: _Optional[_Iterable[str]] = ...) -> None: ... + query_profile: bool + def __init__(self, uuid: bool = ..., vector: bool = ..., creation_time_unix: bool = ..., last_update_time_unix: bool = ..., distance: bool = ..., certainty: bool = ..., score: bool = ..., explain_score: bool = ..., is_consistent: bool = ..., vectors: _Optional[_Iterable[str]] = ..., query_profile: bool = ...) -> None: ... class PropertiesRequest(_message.Message): __slots__ = ("non_ref_properties", "ref_properties", "object_properties", "return_all_nonref_properties") @@ -155,18 +157,54 @@ class Rerank(_message.Message): def __init__(self, property: _Optional[str] = ..., query: _Optional[str] = ...) -> None: ... class SearchReply(_message.Message): - __slots__ = ("took", "results", "generative_grouped_result", "group_by_results", "generative_grouped_results") + __slots__ = ("took", "results", "generative_grouped_result", "group_by_results", "generative_grouped_results", "query_profile") TOOK_FIELD_NUMBER: _ClassVar[int] RESULTS_FIELD_NUMBER: _ClassVar[int] GENERATIVE_GROUPED_RESULT_FIELD_NUMBER: _ClassVar[int] GROUP_BY_RESULTS_FIELD_NUMBER: _ClassVar[int] GENERATIVE_GROUPED_RESULTS_FIELD_NUMBER: _ClassVar[int] + QUERY_PROFILE_FIELD_NUMBER: _ClassVar[int] took: float results: _containers.RepeatedCompositeFieldContainer[SearchResult] generative_grouped_result: str group_by_results: _containers.RepeatedCompositeFieldContainer[GroupByResult] generative_grouped_results: _generative_pb2.GenerativeResult - def __init__(self, took: _Optional[float] = ..., results: _Optional[_Iterable[_Union[SearchResult, _Mapping]]] = ..., generative_grouped_result: _Optional[str] = ..., group_by_results: _Optional[_Iterable[_Union[GroupByResult, _Mapping]]] = ..., generative_grouped_results: _Optional[_Union[_generative_pb2.GenerativeResult, _Mapping]] = ...) -> None: ... + query_profile: QueryProfile + def __init__(self, took: _Optional[float] = ..., results: _Optional[_Iterable[_Union[SearchResult, _Mapping]]] = ..., generative_grouped_result: _Optional[str] = ..., group_by_results: _Optional[_Iterable[_Union[GroupByResult, _Mapping]]] = ..., generative_grouped_results: _Optional[_Union[_generative_pb2.GenerativeResult, _Mapping]] = ..., query_profile: _Optional[_Union[QueryProfile, _Mapping]] = ...) -> None: ... + +class QueryProfile(_message.Message): + __slots__ = ("shards",) + class SearchProfile(_message.Message): + __slots__ = ("details",) + class DetailsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + DETAILS_FIELD_NUMBER: _ClassVar[int] + details: _containers.ScalarMap[str, str] + def __init__(self, details: _Optional[_Mapping[str, str]] = ...) -> None: ... + class ShardProfile(_message.Message): + __slots__ = ("name", "node", "searches") + class SearchesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: QueryProfile.SearchProfile + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[QueryProfile.SearchProfile, _Mapping]] = ...) -> None: ... + NAME_FIELD_NUMBER: _ClassVar[int] + NODE_FIELD_NUMBER: _ClassVar[int] + SEARCHES_FIELD_NUMBER: _ClassVar[int] + name: str + node: str + searches: _containers.MessageMap[str, QueryProfile.SearchProfile] + def __init__(self, name: _Optional[str] = ..., node: _Optional[str] = ..., searches: _Optional[_Mapping[str, QueryProfile.SearchProfile]] = ...) -> None: ... + SHARDS_FIELD_NUMBER: _ClassVar[int] + shards: _containers.RepeatedCompositeFieldContainer[QueryProfile.ShardProfile] + def __init__(self, shards: _Optional[_Iterable[_Union[QueryProfile.ShardProfile, _Mapping]]] = ...) -> None: ... class RerankReply(_message.Message): __slots__ = ("score",)