search()
The MilvusClient interface. This method conducts an approximate nearest neighbor (ANN) search on a vector field and pairs up with a Boolean expression to conduct filtering on scalar fields before searching.
R<SearchResponse> search(SearchSimpleParam requestParam);
SearchSimpleParam
Use the SearchSimpleParam.Builder
to construct a SearchSimpleParam
object.
import io.milvus.param.highlevel.dml.SearchSimpleParam;
SearchSimpleParam.Builder builder = SearchSimpleParam.newBuilder();
Methods of SearchSimpleParam.Builder
:
Method |
Description |
Parameters |
---|---|---|
withCollectionName(collectionName) |
Set the collection name. Collection name cannot be empty or null. |
collectionName: target collection name |
withOutFields(List<String> outFields) |
Specifies output scalar fields (Optional). |
|
withFilter(String filter) |
Set the expression to filter scalar fields before searching(Optional).For more information please refer to this doc. |
filter: The expression to filter scalar fields |
withVectors(List<?> vectors) |
Set the target vector. Up to 16384 vectors allowed. |
vectors: |
withOffset(Long offset) |
Specify a position, the returned entities before this position will be ignored. Only take effect when the 'limit' value is specified.Default value is 0, start from begin. |
offset: A value to define the position |
withLimit(Long limit) |
Specify a value to control the returned number of entities. Must be a positive value.Default value is 10, will return without limit. |
limit: A value to define the limit of returned entities |
withConsistencyLevel(ConsistencyLevelEnum consistencyLevel) |
Consistency level used in the search. If no level is specified, will use default consistency. Please refer to ConsistencyLevelEnum in Misc. |
consistencyLevel: The consistency level used in the search |
build() |
Construct a SearchSimpleParam object. |
N/A |
The SearchSimpleParam.Builder.build()
can throw the following exceptions:
- ParamException: error if the parameter is invalid.
Returns
This method catches all the exceptions and returns an R<SearchResponse>
object.
If the API fails on the server side, it returns the error code and message from the server.
If the API fails by RPC exception, it returns
R.Status.Unknown
and the error message of the exception.If the API succeeds, it returns a valid
SearchResponse
held by theR
template.
Example
import io.milvus.param.*;
import io.milvus.response.SearchResultsWrapper;
import io.milvus.grpc.SearchResults;
SearchSimpleParam param = SearchSimpleParam.newBuilder()
.withCollectionName(COLLECTION_NAME)
.withVectors(generateFloatVector())
.withOutputFields(Lists.newArrayList("*"))
.withFilter(filter)
.withLimit(100L)
.withOffset(0L)
.build();
R<SearchResponse> response = client.search(param)
if (response.getStatus() != R.Status.Success.getCode()) {
System.out.println(response.getMessage());
}
for (QueryResultsWrapper.RowRecord rowRecord : response.getData().getRowRecords()) {
System.out.println(rowRecord);
}