欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > ES的简单讲解

ES的简单讲解

2025/2/27 9:07:28 来源:https://blog.csdn.net/bossface/article/details/145890330  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词