目录
api参考
-
建表
-
https://www.elastic.co/guide/en/elasticsearch/reference/8.6/indices-create-index.html
-
https://www.elastic.co/guide/en/elasticsearch/reference/8.6/dense-vector.html
-
-
查表存在
-
https://www.elastic.co/guide/en/elasticsearch/reference/8.6/indices-exists.html#indices-exists
-
-
删除表
-
https://www.elastic.co/guide/en/elasticsearch/reference/8.6/indices-delete-index.html
-
kibana方式
建表
查表是否存在
删除表
连起来
python方式
put介绍:https://blog.csdn.net/weixin_34107955/article/details/91773495
import requests
import json
res = requests.head('http://xx:9200/test05')
print('查表是否存在-返回状态: ',res.status_code)
params = {
"mappings": {
"properties": {
"c++_vector": {
"type": "dense_vector",
"dims": 3,
"index": True,
"similarity": "dot_product"
}
}
}
}
header = {"Content-Type": "application/json"}
res = requests.put('http://xx:9200/test05',data=json.dumps(params),headers=header)
print('建表-返回状态: ',res.status_code)
res = requests.head('http://xx:9200/test05')
print('查表是否存在-返回状态: ',res.status_code)
res = requests.delete('http://xx:9200/test05')
print('删除表-返回状态: ',res.status_code)
res = requests.head('http://xx:9200/test05')
print('查表是否存在-返回状态: ',res.status_code)
查表是否存在-返回状态: 404
建表-返回状态: 200
查表是否存在-返回状态: 200
删除表-返回状态: 200
查表是否存在-返回状态: 404
curl方式
curl -X PUT "http://xx:9200/test06" -H 'Content-Type: application/json' -d'
{
"mappings": {
"properties": {
"c++_vector": {
"type": "dense_vector",
"dims": 3,
"index": true,
"similarity": "dot_product"
}
}
}
}
'
c++方式
-
head与get区别:https://zhuanlan.zhihu.com/p/311196515
查表是否存在
#include <iostream>
#include "third/httplib/httplib.h"
#include "third/nlohmann/json.hpp"
using namespace std;
using namespace httplib;
using namespace nlohmann;
int main()
{
Client client("http://xx:9200");
auto res = client.Get("/test04");
int status_code = res->status;
cout << "查表是否存在-返回状态码: " << status_code << endl;
}
查表是否存在-返回状态码: 404
建表
httplib参考:https://github.com/yhirose/cpp-httplib
json解析
#include <iostream>
#include "third/nlohmann/json.hpp"
using namespace std;
using namespace nlohmann;
int main()
{
auto params = json::parse(R"({ "mappings": {
"properties": {
"c++_vector": {
"type": "dense_vector",
"dims": 3,
"index": true,
"similarity": "dot_product" }
}
}
})");
cout << params["mappings"] << endl;
cout << params["mappings"]["properties"] << endl;
cout << params["mappings"]["properties"]["c++_vector"] << endl;
}
{"properties":{"c++_vector":{"dims":3,"index":true,"similarity":"dot_product","type":"dense_vector"}}}
{"c++_vector":{"dims":3,"index":true,"similarity":"dot_product","type":"dense_vector"}}
{"dims":3,"index":true,"similarity":"dot_product","type":"dense_vector"}
#include <iostream>
#include "third/httplib/httplib.h"
#include "third/nlohmann/json.hpp"
using namespace std;
using namespace httplib;
using namespace nlohmann;
int main()
{
Client client("http://xx:9200");
auto p = json::parse(R"({ "mappings": {
"properties": {
"c++_vector": {
"type": "dense_vector",
"dims": 3,
"index": true,
"similarity": "dot_product" }
}
}
})");
string strP = p.dump();
auto res = client.Put("/test06", strP, "application/json");
cout << res->status << endl;
}
200
kibana验证下
连起来
#include <iostream>
#include "third/httplib/httplib.h"
#include "third/nlohmann/json.hpp"
using namespace std;
using namespace httplib;
using namespace nlohmann;
int main()
{
Client client("http://xx:9200");
// 查表是否存在
auto res = client.Get("/test06");
auto status_code = res->status;
cout << "查表是否存在-返回状态码: " << status_code << endl;
// 建dense_vector类型的表
auto params_json = json::parse(R"({ "mappings": {
"properties": {
"c++_vector": {
"type": "dense_vector",
"dims": 3,
"index": true,
"similarity": "dot_product" }
}
}
})");
string params_str = params_json.dump();
res = client.Put("/test06", params_str, "application/json");
status_code = res->status;
cout << "建表-返回状态码: " << status_code << endl;
// 查表是否存在
res = client.Get("/test06");
status_code = res->status;
cout << "查表是否存在-返回状态码: " << status_code << endl;
// 删除表
res = client.Delete("/test06");
status_code = res->status;
cout << "删除表-返回状态码: " << status_code << endl;
// 查表是否存在
res = client.Get("/test06");
status_code = res->status;
cout << "查表是否存在-返回状态码: " << status_code << endl;
}
查表是否存在-返回状态码: 404
建表-返回状态码: 200
查表是否存在-返回状态码: 200
删除表-返回状态码: 200
查表是否存在-返回状态码: 404