ES的简单讲解

功能 : 文档存储 与 文档搜索

特点:比如有一个文档名 "你好"

可以用'你','好','你好'都可以搜索到这个文档

ES核心概念

类似于数据库中表的概念,在表的概念下又对数据集合进行了细分

ES_Client查询接口

cpr::Response search(const std::string &indexName,

const std::string &docType,

const std::string &body,

const std::string &routing = std::string());

indexName:索引名称

docType:类型几乎弃用 _doc 填入

body: 请求正文 数据操作json字符串

创建与新增索引

cpr::Response index(const std::string &indexName,

const std::string &docType,

const std::string &id,

const std::string &body,

const std::string &routing = std::string());

indexName:索引名称

docType:类型几乎弃用 _doc 填入

id:数据ID 可以自己指定唯一数也可以被es生成

body:创建索引的json正文

删除

cpr::Response remove(const std::string &indexName,

const std::string &docType,

const std::string &id,

const std::string &routing = std::string());

具体的操作

Response

我们需要获取状态码与其他的一些响应

status_code 状态码

text 响应正文

9200

复制代码
#include <elasticlient/client.h>
#include <cpr/response.h>
#include <iostream>

int main()
{
    elasticlient::Client client({"http://127.0.0.1:9200/"});
    try
    {
        // auto resp=client.search("usr","_doc",  "{\"query\": { \"match_all\":{} } }");
        std::string search_body = R"({"query": { "match_all":
{} } })";

        cpr::Response retrievedDocument = client.search(
            "user", "_doc", search_body);
        std::cout << retrievedDocument.status_code << std::endl;

        std::cout << retrievedDocument.text << std::endl;
    }
    catch (const std::exception &e)
    {
        std::cerr << e.what() << '\n';
    }
}

json 序列化与反序列化

以明文字符窜进行数据组织 --- 容易看懂

以键值对信息进行组织

{

"姓名":"张三",

"年龄": 88 ,

"成绩": [100,98,98]

}

json:Value

数据进行序列化时,需要将数据存储到Value中,再对Value进行序列化

operator[] : Value["姓名"]="张三"

对数组进行新增 Value["成绩"].append(88)​

Value["姓名"].asString()

通过下边访问数组

Value["成绩"][1]

Writer类

将Value类进行序列化输出到一个流中

writer的工厂类

​ ​

​Reader

反序列化函数

工厂类

​​

newCharReader类 返回一个CharReader

相关推荐
s_little_monster15 分钟前
【Linux】进程信号的产生
linux·运维·服务器·经验分享·笔记·学习·学习方法
贺椿椿17 分钟前
简单易懂易操作的liunx安装es集群
linux·运维·服务器
Reese_Cool31 分钟前
【有外界干扰的BFS】经典题P2895Meteor Shower S
数据结构·c++·算法·蓝桥杯·宽度优先
Python测试之道1 小时前
Deepseek API+Python 测试用例一键生成与导出 V1.0.5(支持读取json及yml文件,虚拟环境及库安装指导保姆级指南)
python·json·测试用例
BC橡木1 小时前
C++迭代器(iterator)
c++
源码宝1 小时前
【PACS源码】PACS数字医学影像信息系统,影像数据管理、图像处理、海量数据存储与检索
c++·影像系统·pacs·pacs源码·数据储存·影像后处理·影像工作站
脑子慢且灵1 小时前
Java实战:实现用户的登录注册功能
java·服务器·开发语言·后端·sql
程序员yt1 小时前
双非一本毕业测试工作一年想转C++开发,嵌入式Linux与音视频方向哪个方向更合适?
linux·c++·音视频
紧跟先前的步伐1 小时前
【Goalng】第九弹-----文件操作、JSON处理
开发语言·后端·golang·json
Java展博1 小时前
[特殊字符] 2025蓝桥杯备赛Day13——P10984 [蓝桥杯 2023 国 Python A] 残缺的数字
c++·python·算法·蓝桥杯