目录
kibana方式
curl方式
python方式
方式-1
import json
import requests
header = { "Content-Type": "application/json"}
params = { "query": {"match_all": {} } }
res = requests.post('http://xx:9200/image-index/_search', data=json.dumps(params), headers=header)
num = len(res.json()['hits']['hits'])
print(num)
for i in range(num):
id = res.json()['hits']['hits'][i]['_id']
vector = res.json()['hits']['hits'][i]['_source']['image-vector']
print(id,vector)
4
2 [42, 8, -15]
3 [15, 11, 23]
1 [1, 5, -20]
4 [1, 5, -20]
注意:上面例子里image-vector表不是dense_vector类型
方式-2
import requests
header = { "Content-Type": "application/json"}
strP = '{ "query": {"match_all": {} } }'
res = requests.post('http://xx:9200/image-index/_search', data=strP, headers=header)
num = len(res.json()['hits']['hits'])
print(num)
for i in range(num):
id = res.json()['hits']['hits'][i]['_id']
vector = res.json()['hits']['hits'][i]['_source']['image-vector']
print(id,vector)
4
2 [42, 8, -15]
3 [15, 11, 23]
1 [1, 5, -20]
4 [1, 5, -20]
c++方式
#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");
string pStr = R"({ "query": {"match_all": {} } })";
auto res = client.Post("/image-index/_search", pStr, "application/json");
auto status_code = res->status;
auto body = json::parse(res->body);
cout << status_code << endl;
cout << body << endl;
}
200
{"_shards":{"failed":0,"skipped":0,"successful":1,"total":1},"hits":{"hits":[{"_id":"2","_index":"image-index","_score":1.0,"_source":{"file-type":"png","image-vector":[42,8,-15],"title":"alpine lake"}},{"_id":"3","_index":"image-index","_score":1.0,"_source":{"file-type":"jpg","image-vector":[15,11,23],"title":"full moon"}},{"_id":"1","_index":"image-index","_score":1.0,"_source":{"file-type":"jpg","image-vector":[1,5,-20],"title":"moose family"}},{"_id":"4","_index":"image-index","_score":1.0,"_source":{"file-type":"jpg","image-vector":[1,5,-20],"title":"moose family"}}],"max_score":1.0,"total":{"relation":"eq","value":4}},"timed_out":false,"took":0}
结果解析
#include <iostream>
#include "third/httplib/httplib.h"
#include "third/nlohmann/json.hpp"
#include <tuple>
using namespace std;
using namespace httplib;
using namespace nlohmann;
int main()
{
Client client("http://xx:9200");
string pStr = R"({ "query": {"match_all": {} } })";
auto res = client.Post("/image-index/_search", pStr, "application/json");
auto status_code = res->status;
auto body = json::parse(res->body);
cout << status_code << endl;
int vNum = body["hits"]["total"]["value"];
string vId;
tuple<int,int,int> vector;
for (int i=0;i<vNum;i++)
{
vId = body["hits"]["hits"][i]["_id"];
vector = body["hits"]["hits"][i]["_source"]["image-vector"];
cout << vId << ", [" << get<0>(vector) << ", "<<get<1>(vector)<<", "<<get<2>(vector)<<"]\n";
}
}
200
2, [42, 8, -15]
3, [15, 11, 23]
1, [1, 5, -20]
4, [1, 5, -20]