elasticsearch向量数据库服务搭建

news/2024/9/28 19:46:46 标签: elasticsearch, 数据库, jenkins, 搜索引擎

elasticsearch_0">elasticsearch向量数据库服务搭建

文章目录

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

一、es安装步骤

1、创建网络

docker network create es-net

2、拉取镜像

docker pull elasticsearch:8.15.0

docker 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.sh

sudo 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/bash

sudo 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/bash

sudo docker exec -it kibana2 /bin/bash

# 重启容器
docker restart kibana1

5、访问地址

http://192.168.198.197:5601

elasticsearchhead_162">三、安装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.niftyadmin.cn/n/5681738.html

相关文章

.NET MAUI(.NET Multi-platform App UI)上下文菜单

在.NET MAUI(.NET Multi-platform App UI)框架中,上下文菜单(通常称为右键菜单)是一个为用户提供针对特定控件上下文相关命令的界面元素。这些菜单可以非常方便地添加到.NET MAUI应用的Mac Catalyst和Windows平台上&am…

Day29笔记-Python操作pdfPython发送邮件

一、Python操作PDF【了解】 1.pdf 简介 PDF是Portable Document Format的缩写,这类文件通常使用.pdf作为其扩展名。在日常开发工作中,最容易遇到的就是从PDF中读取文本内容以及用已有的内容生成PDF文档这两个任务。 在Python中,可以使用名为P…

低代码用户中心:构建高效便捷的用户管理平台

什么是低代码用户中心? 低代码用户中心是一种利用低代码开发平台构建的用户管理系统,允许企业快速创建、部署和管理用户信息、权限及互动记录。通过可视化界面和预置组件,企业可以在短时间内实现灵活的用户管理解决方案,而无需编…

DreamBench++:由清华大学和西安交通大学等联合创建:一种人机交互的个性化图像生成基准测试

2024-07-10,由清华大学和西安交通大学等机构联合创建的DreamBench,这个任务目的是通过使用先进的多模态GPT模型来自动化评估,实现与人类评估一致的结果,从而提高个性化图像生成的可靠性和准确性。 一、引言: 个性化图…

交通 | 上门配送or自提点配送?最后一公里配送中的需求引导问题

编者按: 为提高最后一公里配送的效率,本文将客户激励与不确定的路线决策相结合,建立了一个两阶段随即规划问题,并开发了一种精确式的分支定界算法进行求解。 摘要: 为了提高最后一公里配送的效率,零售商…

Adobe PR与AE的区别与联系(附网盘地址)

从事视频后期制作的小伙伴,对于PR(Premiere)和AE(After Effects)应该不会陌生。随着短视频的兴起,就连我们普通用户,拍摄完视频,都会去糟取精的剪辑一下,而PR正是一款功能…

JavaEE: 探索网络世界的核心-IP协议

文章目录 IP 协议协议头格式IP 地址IP地址的数量限制解决IP不够用的问题 IP 地址的网段划分子网掩码ABCDE五类网络 特殊的 IP 地址 IP 协议 协议头格式 4位版本号: 只有两个取值,4(IPv4)和6(IPv6). IPv2,IPv5这些在实际中是没有的,可能是理论上/实验室中存在~ 4位首部长度: IP…