【ElasticSearch】ES 5.6.15 向量插件支持

参考 :
https://github.com/lior-k/fast-elasticsearch-vector-scoring

  1. 下载插件

  2. 安装插件
    插件目录:
    elasticsearch/plugins,
    安装后的目录如下

     plugins└── vector├── elasticsearch-binary-vector-scoring-5.6.9.jar└── plugin-descriptor.properties
    

    修改 plugin-descriptor.properties 中的 elasticsearch.version 为 5.6.15(因为这里使用的是5.6.15版本ES),安装完成后重启ES。

  3. 构建测试索引

    PUT /vector_test
    {"settings": {"index": {"number_of_shards": 3,"number_of_replicas": 0}},"mappings": {"resume": {"dynamic": "strict","properties": {"file_hash": {"type": "keyword"},"embedding_vector": {"type": "binary","doc_values": true},"doc": {"type": "text"}}}}
    }
    
  4. 构建测试数据

使用如下方法生成向量base64字符串

import base64
import numpy as npdfloat32 = np.dtype('>f4')def decode_float_list(base64_string):bytes = base64.b64decode(base64_string)return np.frombuffer(bytes, dtype=dfloat32).tolist()def encode_array(arr):base64_str = base64.b64encode(np.array(arr).astype(dfloat32)).decode("utf-8")return base64_strprint(encode_array([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]))
print(encode_array([0.001,0.002,0.003,0.004,0.005,0.006,0.007,0.008,0.009,0.010]))

将上述得到的结果放到下面内容(embedding_vector)中,这里 embedding_vector 要求传入上述方式base64生成的字符串

PUT /vector_test/resume/1
{"file_hash": "hash1","embedding_vector": "PczMzT5MzM0+mZmaPszMzT8AAAA/GZmaPzMzMz9MzM0/ZmZmP4AAAA==","doc": "This is the content of the first document."
}PUT /vector_test/resume/2
{"file_hash": "hash2","embedding_vector": "OoMSbzsDEm87RJumO4MSbzuj1wo7xJumO+VgQjwDEm88E3S8PCPXCg==","doc": "This is the content of the second document."
}
  1. 查询测试

    POST /vector_test/resume/_search
    {"query": {"function_score": {"boost_mode": "replace","script_score": {"script": {"source": "binary_vector_score","lang": "knn","params": {"cosine": true,"field": "embedding_vector","vector": [1.0,0.8,0.2223,0.7,0.6,0.5,0.4,0.3,0.2,0.1]}}}}},"size": 2,"_source": ["file_hash"]
    }
    

    查询结果

    {"took": 1,"timed_out": false,"_shards": {"total": 5,"successful": 5,"skipped": 0,"failed": 0},"hits": {"total": 4,"max_score": 0.998783,"hits": [{"_index": "vector_test","_type": "resume","_id": "4","_score": 0.998783,"_source": {"file_hash": "hash4"}},{"_index": "vector_test","_type": "resume","_id": "1","_score": 0.5818508,"_source": {"file_hash": "hash1"}}]}
    }
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux中如何开启多个mysql进城并且单独设置密码和端口

在 Linux 系统中,默认情况下 MySQL(或 MariaDB,一个流行的 MySQL 分支)不直接支持在同一台机器上运行多个 MySQL 实例,每个实例使用不同的端口和独立的密码系统。但是,你可以通过配置多个 MySQL 实例&#…

web安全及内网安全知识

本文来源无问社区(wwlib.cn)更多详细内容可前往观看http://www.wwlib.cn/index.php/artread/artid/7506.html Web安全 1、sql注入 Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了SQL语句原有逻…

简述多云互联原理,客户公私云池互通的产品是什么?

多云互联原理基于企业或组织使用多个不同的云服务提供商的基础设施和服务,以实现最佳的运营效率、弹性和成本效益。这种策略允许用户避免供应商锁定,分散风险,并利用不同云服务商的特定优势,例如价格、地理位置、功能或性能。 多云…

jvm 07 GC算法,内存池,对象内存分配

01 垃圾判断算法 1.1引用计数算法 最简单的垃圾判断算法。在对象中添加一个属性用于标记对象被引用的次数,每多一个其他对象引用,计数1, 当引用失效时,计数-1,如果计数0,表示没有其他对象引用,…

【LeetCode】字母异位词分组

目录 一、题目二、解法完整代码 一、题目 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, …

51单片机-第一节-LED和独立按键

一、点亮LED&#xff1a; 首先包含头文件 <REGX52.H> 随后令P2为0xFE。(此时二进制对应1111 1110&#xff0c;为0 的LED亮&#xff0c;故八个灯中的最后一个亮起)。 注&#xff1a;P2为控制LED的8位寄存器。 void main() {P2 0xFE;//1111 1110while(1){} } 二、L…

递归 汉诺塔-java

汉诺塔传说&#xff1a; 汉诺塔&#xff08;又称河内塔&#xff09;问题是源于印度一个古老传说的益智玩具。 大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一个柱子从下往上按照大小顺序摞着64片圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱…

跨境电商自养号测评干货分享:从环境搭建到安全养号

跨境电商测评&#xff08;补单&#xff09; 测评补单这个词对于大部分跨境卖家来说都很熟悉&#xff0c;因为补单对于卖家来说算是一种低成本&#xff0c;高回报的推广营销方式&#xff0c;对于商品流量&#xff0c;转化率&#xff0c;关键词质量分&#xff0c;链接权重都起到…

ACL 2024 Accepted Paper 浅浅分析

7月7日&#xff0c;晴。 ACL 2024的接受论文列表终于姗姗来迟&#xff0c;全网没有搜到相关解析&#xff0c;那我只能先吃个螃蟹了。 借助ChatGPT的辅助编程&#xff0c;我对于其论文和作者进行了一些浅浅的分析&#xff0c;主要从词云、主题类型、作者发表数量3个方面对于主…

Node.js如何在Windows安装?

文章目录 主要特点&#xff1a;使用场景&#xff1a;安装方法验证是否安装成功 Node.js 是一个开源、跨平台的JavaScript运行环境&#xff0c;由Ryan Dahl于2009年创建。它允许开发者在服务器端运行JavaScript代码。Node.js 基于Chrome V8 JavaScript引擎构建&#xff0c;其设计…

CTF php RCE(三)

0x07 日志文件包含 判断类型 使用kali curl -I urlF12 打开F12开发者工具&#xff0c;选中之后F5刷新查看server类型即可 配置文件 直接包含或者访问如果有回显就是&#xff0c; NGINX&#xff1a;NGINX 的配置文件通常位于 /etc/nginx/ 目录下&#xff0c;具体的网站配…

【Lua】lua实现C# continue效果

1. repeat…until和break for i 1, 5 dorepeatif i 3 thenbreakendprint(i)until true end--[[1245 ]]2. 使用goto for i 1, 5 doif i 3 thengoto continueendprint(i, " no continue")::continue:: end--[[1 no continue3 no continue4 no continue5 no c…

2024.7.10作业

完成学生管理系统 1> 使用菜单完成 2> 有学生的信息录入功能&#xff1a;输入学生个数&#xff0c;并将学生的姓名、分数录入 3> 查看学生信息&#xff1a;输出所有学生姓名以及对应的分数 4> 求出学习最好的学生信息&#xff1a;求最大值 5> 按姓名将所有…

北斗GPS天线使用技巧与性能对比

北斗GPS天线使用中注意的问题 多系统兼容性&#xff1a;确保天线不仅能接收北斗信号&#xff0c;还能同时接收其他GNSS系统&#xff08;如GPS、GLONASS、Galileo&#xff09;的信号&#xff0c;以提高定位精度和可靠性。 信号频率选择&#xff1a;根据应用需求选择合适的信号…

各数据库查询模式名、表名、表注释、表大小

一、Oracle SELECT * FROM (SELECT t.*, ROWNUM rn FROM (SELECT a.owner AS schema_name, a.table_name, b.comments as table_comment, COALESCE(a.blocks, 0) * 8 / 1024 AS size_kb FROM dba_tables a left join dba_tab_comments b on a.table_name b.table_name and a.…

[Python学习篇] Python异常

什么是异常&#xff1f; 异常&#xff08;Exception&#xff09;是指在程序执行过程中发生的错误事件&#xff0c;它会中断程序的正常执行流程。异常可以由程序中的错误引发&#xff0c;也可以通过主动抛出异常来处理特殊情况。Python 使用异常处理机制来捕获和处理这些错误&am…

《警世贤文》摘抄:处人篇、受恩篇、宽人篇、听劝篇、劝善篇(多读书、多看报、少吃零食多睡觉)

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140343740 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

新手教学系列——MongoDB聚合查询的进阶用法

引言 MongoDB的聚合查询是其最强大的功能之一。无论是汇总、平均值、计数等标准操作,还是处理复杂的数据集合,MongoDB的聚合框架都能提供高效且灵活的解决方案。本文将通过几个实例,详细讲解如何在实际项目中使用MongoDB进行聚合查询。 标准应用:汇总、平均值、计数等 在…

【C语言】字符函数和字符串函数的介绍和模拟实现

介绍处理字符和字符串的库函数的使用和注意事项 求字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 0. 前言 C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有字符串类型的&am…

从0开始的STM32HAL库学习2

外部中断(HAL库GPIO讲解) 今天我们会详细地学习STM32CubeMX配置外部中断&#xff0c;并且讲解HAL库的GPIO的各种函数。 准备工作&#xff1a; 1、STM32开发板&#xff08;我的是STM32F103C8T6&#xff09; 2、STM32CubeMx软件、 IDE&#xff1a; Keil软件 3、STM32F1xx/ST…