正如标题所示,我想知道是否有人知道在返回的JSON数组中检索 just 查询结果的方法(即:数据与写入索引时的数据完全相同)。即,而不是获取:
{
"hits": {
"total": {
"value": 3
},
"hits": [
{
"_source": {
"name": "name1",
"mydata": {
"data-stuff1": "stuff1 etc"
}
}
},
{
"_source": {
"name": "name2",
"mydata": {
"data-stuff2": "stuff2 etc"
}
}
},
{
"_source": {
"name": "name3",
"mydata": {
"data-stuff3": "stuff3 etc"
}
}
}
]
}
}
要接收 * 仅 * 数据本身:
[
{
"data": {
"data-stuff1": "stuff1 etc"
}
},
{
"data": {
"data-stuff2": "stuff2 etc"
}
},
{
"data": {
"data-stuff3": "stuff3 etc"
}
}
]
(i.e.没有hits.hits,但更重要的是,每个元素都没有'_source' Package 器)
当然,如果有错误,需要检查,甚至让弹性包含它的 meta数据...这个问题的主要目标是得到一个纯结果数组,就像它们在编写时一样,没有被_source污染。
由于_source是由elastic添加的,如果elastic可以[可选地]不将其包含在结果中,那就太好了。
上面的示例在查询中包含了?filter_path=hits.total.value,hits.hits._source参数,但这只是删除了元数据对象(这可能很有用)。
1条答案
按热度按时间slmsl1lt1#
您可以在查询中使用
fields
参数代替_source
参数。fields
参数允许您指定要从索引中检索哪些字段。默认情况下,Elasticsearch在响应中包含_source
字段,但如果您显式指定字段,则会排除_source
字段。示例查询为: