Elasticsearch Java TermVectorRequest(_termvector)
我已在浏览器中执行以下查询:Elasticsearch Java TermVectorRequest(_termvector),java,rest,
elasticsearch,Java,Rest,
elasticsearch,我已在浏览器中执行以下查询: http://127.0.0.1:9200/index/type/id/_termvector 返回: "_index" : "index", "_type" : "type", "_id" : "id", "_version" : 1, "found" : true, "took" : 2, "term_vectors" : { "text" : { "field_statistics" : { "sum_doc_freq" : 1004
http://127.0.0.1:9200/index/type/id/_termvector
返回:
"_index" : "index",
"_type" : "type",
"_id" : "id",
"_version" : 1,
"found" : true,
"took" : 2,
"term_vectors" : {
"text" : {
"field_statistics" : {
"sum_doc_freq" : 100453,
"doc_count" : 3566,
"sum_ttf" : 126632
},
"terms" : {
"trust" : {
"term_freq" : 1
},
"believe" : {
"term_freq" : 1
}
}
}
}
我尝试了Java API对应项TermVectorRequest/Response,如下所示:
TermVectorResponse tvr = client.prepareTermVector().setIndex(index).setType(type).setId(id).execute().actionGet();
我完全不知道如何从API调用中检索和解析结果,也不知道我使用的函数是否正确
提前感谢:)解决方案: 我最终成功地将响应解析为json
TermVectorResponse resp = client.prepareTermVector().setIndex(index).setType(type).setId(id).execute().actionGet();
XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();
resp.toXContent(builder, ToXContent.EMPTY_PARAMS);
builder.endObject();
System.out.println(builder.string());
不要忘记使用builder.startObject()
和builder.endObject()
,否则它将无法输出正确的json
这就给出了预期的输出
奖金:
要将json转换为映射
使用
Map<String, Object> map = XContentHelper.convertToMap(builder.bytes(), false).v2();
Map Map=XContentHelper.convertToMap(builder.bytes(),false).v2();