首页 > 编程语言 >java操作milvus

java操作milvus

时间:2024-08-19 13:27:06浏览次数:10  
标签:java String new 查询 import 操作 milvus features

引入依赖

<dependency>
    <groupId>io.milvus</groupId>
    <artifactId>milvus-sdk-java</artifactId>
    <version>2.4.1</version>
</dependency>

配置milvus客户端


import io.milvus.client.MilvusServiceClient;
import io.milvus.param.ConnectParam;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * milvus配置
 * @author tianluhua
 * @version 1.0
 * @since 2024/8/16 10:15
 */
@Configuration
@ConfigurationProperties(prefix = "milvus.config")
@Data
public class MilvusConfig {

    private String host;

    private Integer port;

    private String database;


    @Bean
    public MilvusServiceClient getMilvusClient() {
        ConnectParam connectParam = ConnectParam.newBuilder()
                .withHost(host)
                .withPort(port)
                .withDatabaseName(database)
                .build();
        return new MilvusServiceClient(connectParam);
    }

}

查询数据

  • 查询使用 SearchParam来构建查询参数。其中
    1. withCollectionName:查询的集合
    2. withVectorFieldName:向量比对的字段
    3. withOutFields:输出的字段名
    4. withFloatVectors:查询的向量。值为2层数组,即可根据多个特征向量查询。查询结果分别返回多个特征向量的结果
    5. withTopK:返回前x条数据
    6. withMetricType:计算相似度方式
      1. L2: 欧几里得计算
      2. COSINE: 余弦相似度计算
  List<List<Float>> text_features = vectorizationResponse.getText_features();

            SearchParam searchParam = SearchParam.newBuilder()
                    .withCollectionName(COLLECTION_NAME)
                    .withVectorFieldName("embedding")
                    .withOutFields("test")
                    .withFloatVectors(text_features)
                    .withMetricType(MetricType.L2)
                    .withTopK(top)
                    .build();
            R<SearchResults> searchResults = milvusServiceClient.search(searchParam);
            SearchResults searchResultsData = searchResults.getData();

            SearchResultsWrapper wrapper = new SearchResultsWrapper(searchResultsData.getResults());

            List<TextSearchImgResponse> textSearchImgResponses = new ArrayList<>();

            for (int i = 0; i < text_features.size(); ++i) {
                List<SearchResultsWrapper.IDScore> scores = wrapper.getIDScore(i);
                if (scores.size() > 0) {
                    for (SearchResultsWrapper.IDScore idScore : scores) {
                        float score = idScore.getScore();
                        Object imagePathO = idScore.getFieldValues().get(SEARCH_RIELD_NAME);
                        if (imagePathO != null) {
                            String relativePath = (imagePathO + "").replace("/cephfs2/data", "")
                                    .replace("/cephfs2/data", "");
                            String imagePath = filePath + relativePath;
                            textSearchImgResponses.add(new TextSearchImgResponse(score, imagePath));
                        }

                    }
                }
            }

标签:java,String,new,查询,import,操作,milvus,features
From: https://www.cnblogs.com/knxhd/p/18366620

相关文章

  • VBA学习(48):利用ADO操作Excel工作表数据
    VBA可以利用ADO创建SQL,从而实现在不打开Excel工作簿的情况下,对工作表的数据进行读写等操作。对于数据量比较大的Excel工作簿,利用ADO模型可以大大提高性能。案例数据D盘有ExcelSQL数据库.xlsx工作簿,工作簿内有【员工信息】工作表,其字段包含工号、姓名、部门、性别和年龄。使......
  • "DSE 驱动签名强制"(Driver Signature Enforcement)是一项 Windows 操作系统的安全功能,
    "DSE驱动签名强制"(DriverSignatureEnforcement)最早起源于WindowsXP和WindowsServer2003的安全增强功能。随着时间推移,它在后续的Windows版本中得到进一步加强和改进,旨在提升系统的安全性和稳定性,通过确保驱动程序必须经过签名认证,防止潜在恶意软件和不兼容的驱动程序......
  • java 入门教程(非常详细!1.6w+ 文字)
    先序:学习编程语言要先学个轮廓,刚开始只用学核心的部分,一些细节、不常用的内容先放着,现用现查即可;把常用的东西弄熟练了在慢慢补充。1.Java概述Java是一种面向对象的编程语言,由SunMicrosystems(现在的Oracle)在1995年推出。Java程序可以在任何支持Java虚拟机(JVM)的......
  • Java基础语法笔记
    Java基础语法1.注释,标识符,关键字注释linecomment://blockcomment:/**/javadoc:/***/标识符、关键字数据类型 ......
  • TransformControls 用于在网页中进行 3D 场景中物体的交互式操作
    demo案例:https://techbrood.com/threejs/examples/#misc_controls_transformTransformControls是Three.js中的一个类,用于在网页中进行3D场景中物体的交互式操作。让我们来详细讲解它的输入参数、输出、属性和方法:输入参数:TransformControls构造函数通常接受两个参数:camer......
  • Java轻松实现跨平台(Windows、Linux)多协议(Twain、Sane)的Web扫描
     由于项目需要,开发在Windows下与Linux下扫描功能,Linux主要是信创的两个系统(UOS、麒麟),研究了一下发现,Windows使用Twain协议与扫描仪通讯,Linux使用的是Sane协议与扫描仪通讯,找到Twain协议和Sane协议的标准文档,英文的,都有大几百页,项目一个月内要求上线,明显没时间慢慢研究,于......
  • 【JavaSec】类的动态加载初探
    0x02类的动态加载文章目录0x02类的动态加载什么是类加载?动态类加载方法:类加载:继承关系:调用关系:下面尝试使用URLClassLoader进行尝试http协议:jar协议:http读取方法:file读取方法:使用defineClass类加载方法Unsafe类加载什么是类加载?即虚拟机加载.class文件在......
  • Java实现:如何通过调度任务搜索附近代驾司机
    文章目录任务需求代码实现代码解读1.任务查询和校验2.订单状态检查3.搜索附近的司机4.推送订单信息结论在现代的出行服务中,代驾服务越来越普及。为了确保用户能够快速找到附近的代驾司机,自动化调度系统显得尤为重要。今天,我将分享一个Java实现的调度任务,旨在根......
  • JAVA毕业设计|(免费)springboot基于spring boot的校园商铺管理系统包含文档代码讲解
    收藏点赞不迷路 关注作者有好处编号:springboot188springboot基于springboot的校园商铺管理系统开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue+html工具:IDEA/Ecilpse、Navicat、Maven1.系统展示2.万字文档展示第5章系统详细设计系统实现这个章节的......
  • JAVA毕业设计|(免费)springboot基于java的火车票订票系统的包含文档代码讲解
    收藏点赞不迷路 关注作者有好处编号:springboot294springboot基于java的火车票订票系统的开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue工具:IDEA/Ecilpse、Navicat、Maven1.系统展示2.万字文档展示第5章系统详细设计这个环节需要使用前面的设计方案,......