首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用elastic4s返回嵌套字段

使用elastic4s返回嵌套字段
EN

Stack Overflow用户
提问于 2015-08-03 18:24:11
回答 1查看 342关注 0票数 0

我有一个嵌套的location对象存储的数据,并且不知道如何让elastic4s作为搜索结果的一部分返回位置。我有(从REST端点)查询的数据如下所示:

代码语言:javascript
复制
{
    "_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查询它时,如下所示:

代码语言:javascript
复制
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)
}

我得到了这样的结果:

代码语言:javascript
复制
{
  "_index" : "us_large_cities",
  "_type" : "city",
  "_id" : "AU7keH9l_N_KRYZ5Iig0",
  "_score" : 1.0,
  "fields" : {
    "city" : [ "Berkeley" ]
  }
}

我希望看到“位置”的地方,但是没有。有人知道我是如何指定字段的,这样我才能真正得到这个位置吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 19:01:17

您应该尝试使用源滤波,如下所示。注意使用sourceInclude而不是fields

代码语言:javascript
复制
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)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31794185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档