我有一个嵌套的location对象存储的数据,并且不知道如何让elastic4s作为搜索结果的一部分返回位置。我有(从REST端点)查询的数据如下所示:
{
"_index": "us_large_cities",
"_type": "city",
"_id": "AU7ke-xU_N_KRYZ5Iii_",
"_score": 1,
"_source": {
"city": "Oakland",
"state": "CA",
"location": {
"lat": "37.8043722",
"lon": "-122.2708026"
}
}
}当我尝试使用elastic4s查询它时,如下所示:
search in "us_large_cities"->"city" fields("location", "city", ) query {
filteredQuery filter {
geoPolygon("location") point(37.9, -122.31) point(37.8, -122.31) point(37.8, -122.25) point(37.9, -122.25)
}我得到了这样的结果:
{
"_index" : "us_large_cities",
"_type" : "city",
"_id" : "AU7keH9l_N_KRYZ5Iig0",
"_score" : 1.0,
"fields" : {
"city" : [ "Berkeley" ]
}
}我希望看到“位置”的地方,但是没有。有人知道我是如何指定字段的,这样我才能真正得到这个位置吗?
发布于 2015-08-03 19:01:17
您应该尝试使用源滤波,如下所示。注意使用sourceInclude而不是fields。
search in "us_large_cities"->"city" sourceInclude("location", "city") query {
filteredQuery filter {
geoPolygon("location") point(37.9, -122.31) point(37.8, -122.31) point(37.8, -122.25) point(37.9, -122.25)
}https://stackoverflow.com/questions/31794185
复制相似问题