milvus 用MilvusServiceClient根据id查询数据java示例
以下是使用 MilvusServiceClient 根据 id 查询数据的 Java 示例代码:
import io.milvus.client.*;
import java.util.*;
public class MilvusQueryById {
public static void main(String[] args) throws InterruptedException, ConnectFailedException {
String host = "127.0.0.1"; // Milvus 服务器的 IP 地址
int port = 19530; // Milvus 服务器的端口号
String collectionName = "example_collection"; // 要查询的集合名称
long id = 1; // 要查询的向量的 id
int topK = 10; // 查询结果中与查询向量最相似的前 K 个向量
// 与 Milvus 服务器建立连接
MilvusClient client = new MilvusGrpcClient(new ConnectParam.Builder().withHost(host).withPort(port).build());
System.out.println("Connect to Milvus server successfully");
// 加载要查询的集合
CollectionMapping collectionMapping = CollectionMapping.create(collectionName, 128, MetricType.L2);
client.createCollection(collectionMapping);
System.out.println("Load collection successfully");
// 根据 id 查询向量
List<Long> idList = new ArrayList<>();
idList.add(id);
List<List<Float>> queryVectors = client.getVectorsByID(collectionName, idList);
// 进行查询
SearchResult searchResult = client.search(collectionName, queryVectors, topK, new SearchParam.Builder().build());
List<List<SearchResult.QueryResult>> queryResultsList = searchResult.getQueryResultsList();
List<SearchResult.QueryResult> queryResults = queryResultsList.get(0);
// 输出查询结果
System.out.println("Query result of vector with id " + id + ":");
for (int i = 0; i < queryResults.size(); i++) {
SearchResult.QueryResult queryResult = queryResults.get(i);
long vectorId = queryResult.getId();
float distance = queryResult.getDistance();
System.out.println("Top " + (i+1) + " vector id: " + vectorId + ", distance: " + distance);
}
// 释放资源
client.close();
System.out.println("Release resources successfully");
}
}
该示例代码中,首先使用 MilvusServiceClient 连接到 Milvus 服务器。然后创建一个 CollectionMapping 对象表示要查询的集合,并将其加载到 Milvus 服务器中。接着根据指定的 id 查询向量,并使用查询结果进行查询。最后输出查询结果,并释放资源
原文地址: https://www.cveoy.top/t/topic/fsx9 著作权归作者所有。请勿转载和采集!