elasticsearch向量数据库服务搭建

elasticsearch向量数据库服务搭建

文章目录

  • elasticsearch向量数据库服务搭建
      • 一、es安装步骤
      • 二、es可视化kibana安装步骤
      • 三、安装elasticsearch-head
    • 四、数据测试,kibana脚本,操作es
    • 五、向量数据测试,kibana脚本,操作es
    • 参考资料

一、es安装步骤

1、创建网络

docker network create es-net

2、拉取镜像

docker pull elasticsearch:8.15.0docker pull docker.elastic.co/elasticsearch/elasticsearch:8.15.0

3、创建挂载目录

mkdir -p /home/data/elasticsearch/config
mkdir -p /home/data/elasticsearch/data
mkdir -p /home/data/elasticsearch/logs
mkdir -p /home/data/elasticsearch/plugins

4、赋予权限

chmod -R 777 /home/data/elasticsearch

5、创建配置(可选项)


vi /home/data/elasticsearch/config/elasticsearch.yml# 可访问IP
cluster.name: "my-es"
network.host: 127.0.0.1# 集群的节点列表(ElasticSearch8新配置)
# discovery.seed_hosts: ["es-ip:9300"]# 跨域开启密码
http.cors.enabled: true
http.cors.allow-origin: "*"
# http.cors.allow-headers: Authorization
xpack.security.enabled: false

6、创建脚本

vim startEs.shsudo docker run -d \
--restart=always \
--name elasticsearch \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /home/data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /home/data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.15.0

docker exec -it elasticsearch /bin/bash# 关闭 密码安全验证echo 'xpack.security.enabled: false' >> elasticsearch.yml# 重启容器
sudo docker restart elasticsearch

7、测试Elasticsearch是否安装成功

http://192.168.198.197:9200

8、容器操作

# 进入容器
docker exec -it elasticsearch /bin/bashsudo docker exec -it elasticsearch /bin/bash# 重启容器
docker restart elasticsearch

二、es可视化kibana安装步骤

1、拉取镜像


docker pull kibana:8.10.2

2、创建配置(可选项)

vi /home/data/kibana/config/kibana.yml# 主机地址,可以是ip,主机名
server.host: 0.0.0.0
# 提供服务的端口,监听端口
server.port: 5601
# 该 kibana 服务的名称,默认 your-hostname
server.name: "bolei-kibana"
server.shutdownTimeout: "5s"#####----------elasticsearch相关----------#####
# kibana访问es服务器的URL,就可以有多个,以逗号","隔开
elasticsearch.hosts: [ "http://192.168.198.197:9200" ]
monitoring.ui.container.elasticsearch.enabled: true

3、启动镜像


sudo docker run -d \
--name kibana2 \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
--network=es-net \
-p 5601:5601  \
kibana:8.6.0

4、容器炒作

# 进入容器
docker exec -it kibana2 /bin/bashsudo docker exec -it kibana2 /bin/bash# 重启容器
docker restart kibana1

5、访问地址

http://192.168.198.197:5601

三、安装elasticsearch-head

直接使用浏览器插件Multi ElasticSearch Head

使用教程:https://blog.csdn.net/qq_50854662/article/details/135967448

四、数据测试,kibana脚本,操作es

dev tool控制台处理

# 创建索引
PUT goods_index# 查询索引
GET goods_index# 添加映射
PUT goods_index/_mapping
{"properties":{"age":{"type":"integer"},"name":{"type":"keyword"},"desc":{"type":"text"}}
}# 创建索引并且添加映射
PUT goods_index1
{"mappings": {"properties": {"age":{"type":"integer"},"name":{"type":"keyword"},"desc":{"type":"text"}}}
}# 添加文档,指定id
PUT goods_index/_doc/1
{"name":"张三","age":34,"desc":"北京人深圳来"
}# 添加文档,不指定id
POST goods_index/_doc
{"name":"李四","age":25,"desc":"四川妹子真辣"
}# 修改文档
PUT goods_index/_doc/1
{"name":"张三1111","age":34,"desc":"北京人深圳来"
}# 删除文档
DELETE goods_index/_doc/1# 查询文档 指定id
GET goods_index/_doc/56YoJ5IBpXr2Jk-kqx2q
# 查询所有文档
GET goods_index/_search# 删除索引
DELETE goods_index

五、向量数据测试,kibana脚本,操作es

1. 创建索引PUT /vector_index
{"mappings": {"properties": {"my_vector_field": {"type": "dense_vector","dims": 128},"my_text": {"type": "text"}}}
}2. 写入数据
PUT /vector_index/_doc/1
{"my_text": "示例文本","my_vector_field": [0.1, 0.2, ..., 0.128]
}3. 搜索查询
POST /vector_index/_search
{"query": {"script_score": { // 使用脚本评分来计算相似度得分"query": {"match_all": {}},"script": {"source": "cosineSimilarity(params.queryVector, 'my_vector_field') + 1.0", // 计算查询向量与存储向量的余弦相似度,并加 1.0 以确保得分非负"params": {"queryVector": [0.1, 0.2, ..., 0.128]}}}}
}

参考资料

  • https://blog.csdn.net/cmh1008611/article/details/141562198

  • https://blog.csdn.net/qq_50854662/article/details/135967448

开源项目地址:https://gitee.com/s11e-DAO/bsin-paas-os

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

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

相关文章

crypto-js解密报错malformed utf-8 data

在进行加解密处理时出现这个问题。 但是当在一个完整程序运行环境内加密字符串,解密字符串是没问题的。 当把加密的字符存储到txt文件,在读取解密时出现错误无法解密。 最后,使用res.replace(/\s/g,‘’)正则过滤掉txt文件内的空格就成功了。…

若依生成主子表

一、准备工作 确保你已经部署了若依框架,并且熟悉基本的开发环境配置。同时,理解数据库表结构对于生成代码至关重要。 主子表代码结构如下(字表中要有一个对应主表ID的字段作为外键,如下图的customer_id) -- ------…

SOCKS5代理和HTTP代理哪个快?深度解析两者的速度差异

在现代互联网环境中,使用代理IP已经成为了许多人日常生活和工作的必备工具。无论是为了保护隐私,还是为了访问某些特定资源,代理IP都扮演着重要的角色。今天,我们就来聊聊SOCKS5代理和HTTP代理,看看这两者到底哪个更快…

【赵渝强老师】K8s中的Deployment控制器

K8s的Deployment将Pod部署成无状态的应用程序,它只关心Pod的数量、Pod更新方式、使用的镜像和资源限制等。由于是无状态的管理方式,因此Deployment中没有角色和顺序的概念,换句话说:Deployment中没有状态。   通过使用Deploymen…

UART 如何实现波特率自动检测原理介绍

为什么需要波特率自动检测机制 我们都知道,串口通讯是需要约定波特率才能够进行准确的通讯。此时假设,你们公司开发了一个板子,有一个串口与外接设备进行通讯。因为你们公司开发的产品要提供给多个客户,而有些客户可能之前就有一…

高通Android 12 音量API设置相关代码

// 获取当前音量大小public static int getCurrentVolume(Context context) {AudioManager audioManager (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);return audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); // 使用 STREAM_MUSIC 作为示例…

Cesium笔记 canvas定制billboard

Cesium 中label时,想要设置text的背景图片时,label没有backgroundimage属性。 如果使用labelbillboard 的方式设置,会存在文本长短不一时,图片不能自适应等问题。 const showLabelFun (dataMcInfo, backgroundcolor) > {var…

MacOS Catalina 从源码构建Qt6.2开发库之02: 配置QtCreator

安装Qt-creator-5.0.2 在option命令中配置Qt Versions指向 /usr/local/bin/qmake6 Kits选入CLang

SSM+Vue社区物业管理系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作…

leetcode721. 账户合并

给定一个列表 accounts,每个元素 accounts[i] 是一个字符串列表,其中第一个元素 accounts[i][0] 是 名称 (name),其余元素是 emails 表示该账户的邮箱地址。 现在,我们想合并这些账户。如果两个账户都有一些共同的邮箱地址&#x…

【cache】浅析四种常用的缓存淘汰算法 FIFO/LRU/LFU/W-TinyLFU

本文浅析淘汰策略与工作中结合使用、选取,并非针对算法本身如何实现的 文章目录 FIFOLFULRUW-TinyLFU实践与优化监控与调整 FIFO first input first output , 先进先出,即最早存入的元素最先取出, 典型数据结构代表:…

Elasticsearch使用Easy-Es + RestHighLevelClient实现深度分页跳页

注意!!!博主只在测试环境试了一下,没有发到生产环境跑。因为代码还没写完客户说不用弄了( •̩̩̩̩_•̩̩̩̩ ) 也好,少个功能少点BUG 使用from size的时候发现存在max_result_window10000的限制&…

TypeScript介绍和安装

TypeScript介绍 TypeScript是由微软开发的一种编程语言,它在JavaScript的基础上增加了静态类型检查。静态类型允许开发者在编写代码时指定变量和函数的类型,这样可以在编译时捕获潜在的错误,而不是等到运行时才发现问题。比如,你…

用systemd 来控制 qt 程序的启动, 停止 . 解决 qt.qpa.xcb: could not connect to display 问题

author: hjjdebug date: 2024年 09月 28日 星期六 15:49:51 CST description: 用systemd 来控制 qt 程序的启动&#xff0c;停止 解决 qt.qpa.xcb: could not connect to display 问题 1. 先写一个QT 的测试程序 basic, 让他不断打印数字. $ cat main.cpp #include <QAp…

生成式人工智能在软件开发中的角色

随着生成式人工智能&#xff08;AIGC&#xff0c;Artificial Intelligence Generated Content&#xff09;技术的飞速进步&#xff0c;软件开发领域的工作方式也在发生着革命性的变化。从代码生成、错误检测到自动化测试&#xff0c;AI工具正在成为开发者的得力助手。然而&…

基于STM32的无人驾驶车辆系统

目录 引言项目背景环境准备 硬件准备软件安装与配置系统设计 系统架构关键技术代码示例 传感器数据采集与处理路径规划与避障控制实时反馈与控制系统应用场景结论 1. 引言 随着无人驾驶技术的发展&#xff0c;嵌入式系统在无人驾驶车辆中的应用变得越来越重要。STM32作为高效…

Java SPI 原理、样例

在 Java 中&#xff0c;SPI&#xff08;Service Provider Interface&#xff09;全称为服务提供者接口&#xff0c;它是一种用于实现框架扩展和插件化的机制。 一、SPI 作用 允许在运行时动态地为接口查找服务实现&#xff0c;而不需要在代码中显式地指定具体的实现类。 这使得…

代码随想录算法训练营Day13

110.平衡二叉树 力扣题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 后序迭代 class Solution {public boolean isBalanced(TreeNode root) {return getHeight(root)!-1;}public int getHeight(TreeNode root){if(rootnull){return 0;}int leftheightgetHei…

【python】函数的定义

目录 函数介绍函数的定义函数的参数函数的返回值函数说明文档函数的嵌套调用变量的作用域综合案例 学习目标&#xff1a; 掌握函数的基础定义语法 函数的定义 函数的定义&#xff1a; def 函数名(传入参数):函数体return 返回值函数的调用&#xff1a; 函数名(参数)演示…

WordPress精选文章如何添加侧边栏和页面?

WordPress精选帖子是一项功能&#xff0c;可让用户在其网站主页或其他值得注意的部分突出显示特定帖子。这些精选帖子通常以视觉上独特的方式显示&#xff0c;例如以滑块、网格或轮播格式显示&#xff0c;以提高其可见性和对访问者的吸引力。 网站所有者可以手动选择他们想要推…