当前位置: 首页 > article >正文

Elasticsearch 向量数据库本地部署 及操作方法

elasticsearch是个分布式向量数据库,支持多种查找模式。此外还拥有 Metadata、Filtering、Hybrid Search、Delete、Store Documents、Async等能力。本文仅是记录本地测试途中遇到的问题。

一,环境部署

下载软件

首先去官网,选择适合平台下载
https://www.elastic.co/downloads/elasticsearch

启动配置

解压后找到config目录下的elasticsearch.yml

找到98行将这里改为false,否则我们无法在浏览器中正常访问
在这里插入图片描述
然后找到32、37行设置数据和记录的存储位置
在这里插入图片描述
找到92行设为false,否则会提示安全错误
在这里插入图片描述
设置后保存即可

启动数据库

回到上层,进入bin目录,找到bat可执行文件双击后等待,
在这里插入图片描述
随后弹出控制台,若无报错信息便是启动成功了
在这里插入图片描述
完成启动后用浏览器访问localhost:9200 或127.0.0.1:9200,如果看到如下信息就算可以成功访问了
在这里插入图片描述

二,操作数据库(浏览器api)

可以直接通过http api、postman来操作es数据库。

创建索引
模式:PUT 
参数:/products(索引名 )
数据:
{
  "settings": {
    "number_of_shards": 1, (主分片的数量)
    "number_of_replicas": 0 (副本分片的数量)
  }
}
添加文档
模式:POST
参数: /products/_doc/1(指定文档id 1,如果不写doc 1 那么就会自动生成id)
{
  "title":"天气",
  "content":"晴天霹雳"
}
查询文档
模式:GET
参数:/products/_doc/1(指定文档id)
更新文档

es中更新文档是先删除再添加

模式:PUT
参数:/products/_doc/1(指定文档id)
删除文档
模式:DELETE
参数:/products/_doc/1(指定文档id)

三,操作数据库(Python)

安装Elasticsearch

pip install Elasticsearch

初始化
from flask import Flask, request, jsonify
from elasticsearch import Elasticsearch
#链接目标数据库
es = Elasticsearch(hosts="localhost:9200") 
创建索引
es.indices.create(index='游戏攻略', body={}) 
向索引插入文档
		doc = {
            'title':title,
            'content':content
        }
    
        es.index(index='游戏攻略', body=doc)
查找索引
		query = {
            'query': {
                'match': {
                    # 'title': title,
                    'content': content
                }
                # "match_all": {}
            }
        }
        result = self.es.search(index=indexName, body=query)
        # print(result)
        if result['_shards']['total'] > 0:
            print('找到相关数据')
删除索引
es.indices.delete(index=index)

四,问题解决

  1. 如果出现“method is deprecated. Use ‘Elasticsearch.options()’ instead”
    第一种方法:将创建索引的方式改为es.indices.create(index=‘身份介绍2’, body=doc) x这种形式就行了
    第二种方法:版本降级 pip install elasticsearch==7.13.0

  2. 如果在浏览器测试时出现下面这个框,或提示“security_exception”,就把elasticserch.yaml 的xpack.security.enabled设为 false
    在这里插入图片描述

  3. 如果提示“Could not rename log file ‘logs/gc.log’ to ‘logs/gc.log.20’ (Permission denied).”
    4.python 安装
    pip install llama-index-vector-stores-elasticsearch
    pip install elasticsearch


http://www.kler.cn/news/294524.html

相关文章:

  • Learn ComputeShader 09 Night version lenses
  • 如何使用Prometheus与Grafana监控Kubernetes集群
  • 图论基础1
  • 重启顺风车的背后,是高德难掩的“野心”
  • 高分辨率音频和传统音频区别
  • 学习笔记--Docker
  • 【机器学习】朴素贝叶斯网络的基本概念以及朴素贝叶斯网络在python中的实例
  • 【SpringBoot】使用Nacos服务注册发现与配置管理
  • 主板选购2
  • 【C/C++】Linux\Windows为什么频繁使用size_t
  • 服务器蓝屏该怎么办
  • Vue3 父子传参 简单易懂
  • Mybatis Plus快速重构真批量sql入库操作
  • PLC+AIoTedge边缘物联网平台能否替代 PLC+Wincc?
  • 13. 说说 MyBatis 的缓存机制?
  • MySQL 数据库管理与操作指南
  • 自定义view中常用到哪些方法作用分别是什么
  • 专栏前言-WooYun漏洞库环境搭建
  • Java详解String 字符串类以及String内存原理、StringBuilder类、StringJoiner类(附有代码+案例)
  • MASt3R:从3D的角度来实现图像匹配(更新中)
  • 前端工程化2:从0-1的eslint插件开发教程
  • 基于Prometheus 和K8S kubernetes 构建 搭建监控告警系统
  • 单点登录:cas单点登录实现原理浅析
  • 【Vue】状态管理模式Vuex
  • 通信工程学习:什么是AM标准调幅
  • [情商-13]:语言的艺术:何为真实和真相,所谓真相,就是别人想让你知道的真相!洞察谎言与真相!
  • Redis在登录接口中实现token时间的自适应增长
  • mysql5.6根据经纬度查询距离
  • 亚马逊测评深度解析:如何安全高效提升产品销量和好评
  • HTB-Pennyworth(cve查询 和 exp使用)