首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ES响应中隐藏公共字段

在ES响应中隐藏公共字段
EN

Stack Overflow用户
提问于 2014-03-19 08:44:59
回答 2查看 2.3K关注 0票数 1

我是否可以隐藏一些由ES作为响应返回的公共字段。

例如,如果我收到如下答复:

代码语言:javascript
复制
{
  "took": 74,
  "timed_out": false,
  "_shards": {
    "total": 15,
    "successful": 15,
    "failed": 0
  },
  "hits": {
    "total": 24,
    "max_score": 0.15932977,
    "hits": [
      {
        "_index": "prashant",
        "_type": "session",
        "_id": "LeIDrUNmSKGC5Sl9Y8O0Zw",
        "_score": 0.15932977,
        "fields": {
          "Time": [
            "2014-01-08T15:01:26"
          ]
        }
      },
      {
        "_index": "prashant",
        "_type": "session",
        "_id": "dlpQGXk_TOyfNnUEG6skeQ",
        "_score": 0.14296037,
        "fields": {
          "Time": [
            "2014-01-08T15:01:26"
          ]
        }
      }
    ]
  }
}

现在,我希望ES响应而不需要 type、timed_out、_shards、total、成功、失败的值--我也不想要_index、_type的名称,因为我正在执行对特定索引和类型的查询。

那么,有没有一种方法可以这样过滤ES响应呢?

EN

回答 2

Stack Overflow用户

发布于 2016-02-15 20:42:20

使用"路径“查询参数。在您的示例中,要只包含所有结果的_source和_id字段(从而排除响应中的所有其他元数据),请使用:

http://your-es-cluster?filter_path=hits.hits._source,hits.hits._id

我认为它从1.6开始就在rest中了。

若要进一步筛选和限制_source中的字段,请使用普通源参数滤波。例如:

http://your-es-cluster?filter_path=hits.hits._source,hits.hits._id&_source=Time

票数 3
EN

Stack Overflow用户

发布于 2014-03-19 10:08:57

您可以通过指定在请求的搜索查询部分中返回的字段来限制搜索响应。

代码语言:javascript
复制
"search_request": {
  "fields": [ "title", "content" ],
  "query": ...
},

这是Elasticsearch的标准字段筛选器,它不是集群特定的。请记住,您必须包括将用于稍后集群的字段。请参阅插件的文档(“关于字段映射的更多信息”)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22500405

复制
相关文章

相似问题

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