我是ElasticSearch / Kibana noob,并且正在尽力向自己介绍这项服务的基础知识。我正在尝试将一些Keyword文档插入我的AWS ElasticSearch服务中。该文档非常简单。它包含了

  • created_at一个日期时间字段
  • updated_at:日期时间字段
  • keyword:实际的关键字本身,一个字符串,例如watercolorsromanticism
  • user_id:创建此关键字的用户

  • 使用Kibana开发者控制台,我已经使用PUT请求定义了该索引的映射,然后发送了这个GET请求以检查其是否有效(GET /keyword_index/_mapping/Keyword):
    {
      "keyword_index": {
        "mappings": {
          "Keyword": {
            "properties": {
              "_created_at": {
                "type": "date",
                "format": "yyyy-MM-dd HH:mm:ss"
              },
              "_updated_at": {
                "type": "date",
                "format": "yyyy-MM-dd HH:mm:ss"
              },
              "keyword": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "userId": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          }
        }
      }
    }
    

    我已使用以下/keyword_index/Keyword请求(来自Python脚本)成功地将记录插入到 POST 中:
    POST MY_ES_SERVICE_ADDRESS/keyword_index/Keyword/FzaGCiZl68/_create
    {"keyword": "Comedy", "userId": "hjkJVM4TjD12N", "_created_at": "2017-12-28 02:52:14", "_updated_at": "2017-12-28 02:52:14"}
    

    这是执行match_all查询的示例结果:
    {
      "took": 3,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 332,
        "max_score": 1,
        "hits": [
          {
            "_index": "keyword_index",
            "_type": "Keyword",
            "_id": "HCQAm97kbs",
            "_score": 1,
            "_source": {
              "keyword": "Controlled",
              "userId": "",
              "_created_at": "2017-10-12 06:01:14",
              "_updated_at": "2017-10-12 06:01:14"
            }
          },  ... more results below not shown...
    

    但是,当我尝试创建索引映射时,Kibana无法识别我的日期时间字段:

    amazon-web-services - Kibana无法识别 Elasticsearch 日期字段-LMLPHP

    此外,当我检查Kibana内的字段时,我看到一堆字段,这些字段我没有为其创建映射,也没有在发送POST请求时插入。而且,更重要的是,我根本看不到日期字段:
    amazon-web-services - Kibana无法识别 Elasticsearch 日期字段-LMLPHP

    我在这里找到了similar SO post,但是可以接受的答案是在Kibana Management控制台中单击“刷新字段”橙色按钮,但是我看不到这种东西。

    我的日期字段去哪里了?为什么他们不被基巴纳认可?

    最佳答案

    我相信我找到了罪魁祸首。 以下划线开头的字段(例如_created_at)未在Kibana中显示,正如我在此Github issue中发现的那样。

    我只是将映射从_created_at更改为created_at,将_updated_at更改为updated_at,此问题已解决。

    我并不介意,因为我了解区分内部字段和面向用户字段的必要性,但是也许Kibana中一些更出色的文档可以帮助我们节省一些头痛和时间?

    07-24 09:39
    查看更多