Elasticsearch 向量搜索

目标记录

["你好,我的爱人","你好,我的爱妻","你好,我的病人","世界真美丽"]

搜索词

爱人

预期返回

["你好,我的爱人","你好,我的爱妻"]

示例代码:

代码连接 es8以及bge-large-zh模型,

bge-large-zh用来将文本转换为向量数据

es用来存储向量数据,并根据向量来搜索相似度最高的文本(相似度可以用阈值调整)

from flask import Flask, request  # 导入Flask类
from FlagEmbedding import FlagModel
from elasticsearch import Elasticsearch
from elasticsearch.helpers import bulkapp = Flask(__name__)  # 实例化并命名为app实例
model = FlagModel('./models/bge/bge-large-zh', query_instruction_for_retrieval="为这个句子生成表示以用于检索相关文章:")
# 创建Elasticsearch客户端对象
es = Elasticsearch(hosts="http://localhost:9200")
es.ping()@app.route('/ins', methods=['POST'])
def index():    data = request.get_json()print(data)strs = data["strs"]documents = []for str in strs:            print(str)tmp = model.encode(str)documents.append({"general_text": str,"general_text_vector": tmp,# "domain":"001"})documentsbulk(es, documents, index="demo")return success(1)@app.route('/search', methods=['POST'])
def search():data = request.get_json()doc_vector = model.encode(data["name"])results = es.search(index="demo",source=["general_text",            ],min_score= 1.83,query={"script_score": {"query": { "match_all": {} },"script": {"source": "cosineSimilarity(params.queryVector, 'general_text_vector') + 1.0","params": {"queryVector": doc_vector.tolist()}}}},size=1000)# return resultsreturn results['hits']['hits']def success(data):return {"status": "success","result": data}def fail(data):return {"status": "fail","result": data}if __name__ == "__main__":# Runport = 5000app.run(host='127.0.0.1', port=port, debug=False, use_reloader=False)

es存储数据

搜索结果

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

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

相关文章

故障排查指南:通过连接电脑查找iOS应用崩溃日志的有效技巧

在iOS应用开发过程中,调试日志和奔溃日志是开发者必不可少的工具。当iOS手机崩溃时,我们可以连接电脑并使用Xcode Console等工具来查看日志。然而,这种方式可能不够方便,并且处理奔溃日志也相当繁琐。克魔助手的出现为开发者带来了…

基于springboot实现图书个性化推荐系统项目【项目源码+论文说明】

基于springboot实现图书个性化推荐系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个图书个性化推荐系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论…

Nodejs 16与 gitbook搭建属于你自己的书本网站-第一篇

最近想重新搭建一个网站来存放自己的相关知识点,并向网络公开,有个hexo博客其实也不错的,但是总感觉hexo很多花里胡哨的玩意,导致挂载的博客异常卡,这样反而不利于我自己回顾博客了,于是我就开始钻研这个鬼…

pyinstaller将文件内容打包到可执行文件本身中

本文使用创作助手。 要将文件内容打包到可执行文件本身中,可以使用PyInstaller的--add-data选项和pyz文件格式。以下是具体步骤: 将所有的图片和音频文件放入一个文件夹,例如resources文件夹。 在你的代码中,使用相对路径引用这…

computed计算属性、watch侦听器、生命周期

计算属性 点击查看 Vue文档 基础语法 多次使用计算属性,计算属性方法也只执行一次, 调用计算属性的方法不能加() 直接修改计算数学的值 计算属性不能通过双向绑定修改(默认不能改) 想要修改计算属性,就必须使用计…

LeetCode 206.反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出:[2,1] 示例 3: …

webpack项目打包console git分支、打包时间等信息 exec

相关链接 MDN toLocaleString child_process Node.js strftime 格式 代码 buildinfo.js const { execSync, exec } require("child_process"); // exec: 在 Windows 执行 bat 和 cmd 脚本// execSync 同步 // exec 异步// exec 使用方法 // exec(git show -s,…

SMBV100A罗德与施瓦茨SMBV100A信号源

181/2461/8938产品概述: 罗德与施瓦茨 SMBV100A 提供卓越的射频性能以及非常高的输出电平和较短的设置时间。同时,SMBV100A可配备内部基带发生器,以生成多种数字标准(例如LTE、LTE-Advanced、IEEE802.11ac、GNSS)。9 …

SpringBoot 优雅的发送邮件(附源码)

文章目录 前言一、简介1. 什么是 SMTP?2. 什么是 IMAP?3. 什么是 POP3?4. IMAP 和 POP3 协议有什么不同呢?5. 什么是 JavaMailSender 和 JavaMailSenderImpl?6. 如何通过 JavaMailSenderImpl 发送邮件?二、获取邮箱配置三、简单实例1. 引入依赖2. 配置邮箱信息3. 功能实现…

【C++杂货铺】内管管理

目录 🌈前言🌈 📁 C/C中内存分布 📁 new 和 delete的使用 📁 new 和 delete的优点 📁 new 和 delete的原理 📂 operator new 和 operator delete函数 📂 内置类型 &#x1f4c2…

Java中读取html文件转成String,展示在浏览器

这里写目录标题 第一章1.1&#xff09;pom中引入依赖和html文件示例1.2&#xff09;使用hutool工具包读取html文件转为string1.3&#xff09;页面显示 第一章 1.1&#xff09;pom中引入依赖和html文件示例 引入hutool工具包依赖 <dependency><groupId>cn.hutool&…

Vue 3与其他框架对比

Vue 3与其他框架对比 Vue.js自2014年发布以来,凭借轻量级、高性能和渐进式等特点,已成为了前端开发中最流行的框架之一。近期,Vue团队正式发布了Vue 3的稳定版本,带来了诸多改进和创新,进一步提升了Vue的开发体验和性能表现。本文将结合Vue 3的新特性,对比其与React、Angular等…

【C++程序员的自我修炼】基础语法篇(一)

心中若有桃花源 何处不是水云间 目录 命名空间 &#x1f49e;命名空间的定义 &#x1f49e; 命名空间的使用 输入输出流 缺省参数 函数的引用 引用的定义&#x1f49e; 引用的表示&#x1f49e; 引用的特性&#x1f49e; 常量引用&#x1f49e; 引用的使用场景 做参数 做返回值…

关于云墙的一些功能

功能介绍 产品功能功能解释应用识别在进行分析报文头的基础上&#xff0c;结合不同的应用协议特征库综合判断所属的应用监控统计对设备数据进行统计&#xff0c;并以柱状图、折线图、表格、报表、日志等方式呈现出来&#xff0c;帮助用户通过统计数据掌握设备状况&#xff0c;…

Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器

Docker进阶&#xff1a;Docker Swarm&#xff08;集群搭建&#xff09; —实现容器编排的利器 1、什么是Docker Swarm&#xff1f;2、Docker Swarm 与 Docker Compose的区别3、创建一个Swarm集群&#xff08;1-Manager&#xff0c;2-Worker&#xff09;1、资源准备2、初始化Swa…

使用Windows编辑工具直接编辑Linux上的代码

windows直接编辑Linux上代码 步骤如下&#xff1a; 1、按照samba 2、vim /etc/samba/smb.conf 3、输入以下内容 4 、重启下samba 输入以下内容 pkill smbd smbd 查看采用 ps -ef|grep smbd 给予文件权限&#xff1a; chmod 777 /code 5、winr 修改全选才能进入并且编写。…

如何使用python链表

在Python中&#xff0c;可以使用类来实现链表的数据结构。链表是一种数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含一个数据元素和一个指向下一个节点的引用。 下面是一个简单的链表类的示例&#xff1a; class Node:def __init__(self, data):self.data …

【力扣hot100】25 K个一组反转链表(c++)解析

这是一题比较简单的hard 思路和模拟方法相同&#xff0c;首先判断链表是否有K个数&#xff0c;不足则直接返回head。否则对前K个数进行反转&#xff0c;然后进行递归处理。 class Solution { public:ListNode* reverseKGroup(ListNode* head, int k) {ListNode *p head;for(i…

laravel(源码阅读):kernel过程和console调度artisan命令

http kernel 使用相关&#xff1a;通过artisan命令、计划任务、队列启动框架进行处理的 创建应用实例绑定内核到容器解析http内核实例处理http请求发送响应终止应用程序&#xff0c;中间件 terminable 善后。session写入存储器中。 Console artisan工具&#xff1a;执行计划…

快速上手Spring Cloud 六:容器化与微服务化

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …