search()
This method conducts a vector similarity search.
Invocation
search(data, anns_field, param, limit, expr=None, partition_names=None, output_fields=None, timeout=None, round_decimal=-1, **kwargs)
Parameters
Parameter | Description | Type | Required |
---|---|---|---|
data | Data to search with. | list[list[Float]] | True |
anns_field | Name of the vector field to search on. | String | True |
param | Specific search parameter(s) of the index on the vector field. | Dict | True |
limit | Number of the nearest records to return. | Integer | True |
expr | Boolean expression to filter the data. | String | False |
partition_names | List of names of the partitions to search on. All partitions will be searched if it is left empty. | list[String] | False |
output_fields | List of names of fields to output. | list[String] | False |
timeout | An optional duration of time in seconds to allow for the RPC. If it is set to None, the client keeps waiting until the server responds or error occurs. | Float | False |
round_decimal | Number of the decimal places of the returned distance. | Integer | False |
kwargs : _async | Boolean value to indicate if to invoke this method asynchronously. | Bool | False |
kwargs : _callback | Function that will be invoked after server responds successfully. It takes effect only if _async is set to True . | Function | False |
kwargs : consistency_level | Consistency level used in the search. | String/Integer | False |
kwargs : guarantee_timestamp | Milvus searches on the data view before this timestamp when it is provided. Otherwise, Milvus searches on the most updated data view. This parameter can only be used in the Customized level of consistency. | Integer | False |
kwargs : graceful_time | Milvus will use current timestamp minus the graceful_time as the guarantee_timestamp for search. This parameter can only be used in the Bounded level of consistency. | Integer | False |
kwargs : travel_timestamp | Timestamp that is used for Time Travel. Users can specify a timestamp in a search to get results based on a data view at a specified point in time. | Integer | False |
Return
A SearchResult object, an iterable, 2d-array-like class whose first dimension is the number of vectors to query (nq
), and the second dimension is the number of limit (topk
).
Raises
RpcError
: error if gRPC encounter an error.ParamError
: error if the parameters are invalid.DataTypeNotMatchException
: error if wrong type of data is passed to server.BaseException
: error if the return result from server is not ok.
Example
search_params = {"metric_type": "L2", "params": {"nprobe": 10}}
from pymilvus import Collection
collection = Collection("book") # Get an existing collection.
results = collection.search(
data=[[0.1, 0.2]],
anns_field="book_intro",
param=search_params,
limit=10,
expr=None,
consistency_level="Strong"
)
results[0].ids
results[0].distances