首页 > 解决方案 > 弹性搜索存储:如何获取_source下的字段名列表?

问题描述

我对使用弹性搜索存储和寻找线索来查找在_source 下列出的所有字段的列表非常陌生。到目前为止,我已经找到了找出 _source 下定义的不同字段的值的方法,但没有找到列出所有字段的方法。例如:我有以下文件

   {
      "took": 1,
      "timed_out": false,
      "_shards": {
      "total": 5,
      "successful": 5,
      "skipped": 0,
      "failed": 0
   },
   "hits": {
      "total": 2,
      "max_score": 1,
      "hits": [
       {
         "_index": "my_product",
         "_type": "_doc",
         "_id": "B2LcemUBCkYSNbJBl-G_",
         "_score": 1,
         "_source": {
             "email": "123@abc.com",
             "product_0": "iWLKHmUBCkYSNbJB3NZR",
             "product_price_0": "10",
             "link_0": ""
          }
       }
      ]
    }
  }

因此,从上面的示例中,我想获取 _source 下的字段名称,例如 email、product_0、product_price_0 和 link_0。我一直在通过解析从 ess api 返回的数组来检索值,但是应该在什么位置?标记以获取字段名称 $result['hits']['hits'][0]['_source'][?]

注意:我正在使用 php 将数据插入 ESS 并从中检索数据。

标签: elasticsearch

解决方案


如果我理解正确,您需要array_keys

array_keys($result['hits']['hits'][0]['_source'])

推荐阅读