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

初始化
python 复制代码
from flask import Flask, request, jsonify
from elasticsearch import Elasticsearch
#链接目标数据库
es = Elasticsearch(hosts="localhost:9200") 
创建索引
python 复制代码
es.indices.create(index='游戏攻略', body={}) 
向索引插入文档
python 复制代码
		doc = {
            'title':title,
            'content':content
        }
    
        es.index(index='游戏攻略', body=doc)
查找索引
python 复制代码
		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('找到相关数据')
删除索引
python 复制代码
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

相关推荐
B站计算机毕业设计超人4 分钟前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人5 分钟前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
数据架构师的AI之路6 分钟前
深入了解大数据领域Hive的HQL语言特性
大数据·hive·hadoop·ai
Nandeska7 分钟前
15、基于MySQL的组复制
数据库·mysql
L***一29 分钟前
大数据技术专业中专生职业发展路径探析
大数据
woshikejiaih32 分钟前
**播客听书与有声书区别解析2026指南,适配不同场景的音频
大数据·人工智能·python·音视频
无忧智库39 分钟前
某市“十五五“智慧气象防灾减灾精准预报系统建设方案深度解读 | 从“看天吃饭“到“知天而作“的数字化转型之路(WORD)
大数据·人工智能
AllData公司负责人1 小时前
AllData数据中台-数据同步平台【Seatunnel-Web】整库同步MySQL同步Doris能力演示
大数据·数据库·mysql·开源
acrelwwj1 小时前
智慧照明新引擎,ASL600 4GWJ开启城市照明精细化管理新时代
大数据·经验分享·物联网
加油,小猿猿1 小时前
Java开发日志-双数据库事务问题
java·开发语言·数据库