GET /website/blog/123/_source
会直接返回_source
字段中存储的文档。
我目前正在使用Node JS的快速框架。我应该如何在我的代码中实现这一点?
esClient.search({
index: "myIndex",
type: "myType",
body: {
"query": {
"match_all": {}
},
"size": 3,
"from": 1
}
}).then(function (resp) {
var result = resp.hits.hits;
res.status(200).send({data: {recommendations: result, showItemFrom: showItemFrom}})
}, function (err) {
console.trace(err.message)
res.status(500).send({data: err.message})
})
我以这种方式得到回应......
[
"_source":{
{
"id": 1,
"title": "Test"
}
}
]
但是,我想这样......
[
{
id:1,
title:"Test"
}
]
答案 0 :(得分:2)
我不认为Elasticsearch API有一个方法可以为搜索做这个,Val提到的那个可以工作,但它只能通过它的id直接用于GET文档。
但您可以使用Javascript Array#map()方法映射结果:
var result = resp.hits.hits.map(hit => hit._source);
答案 1 :(得分:0)
之后
index:"myIndex"
添加:
source:true
答案 2 :(得分:0)
您需要拨打getSource()
function,如下所示:
esClient.getSource({
index: "website",
type: "blog",
id: "123"
}).then(function (source) {
// do something with source
}, function (err) {
// error happened
})