【问题标题】:How can I create a meta data on `Elasticsearch`?如何在“Elasticsearch”上创建元数据?
【发布时间】:2020-02-17 02:44:00
【问题描述】:

我正在使用Elasticsearch 6.8。我想在我的索引上保存一些meta 数据。索引已经存在。我关注了这个文档https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html#add-field-mapping

curl "http://localhost:9200/idx_1/_mapping"

{
  "idx_1": {
    "mappings": {
      "1": {
        "properties": {
          "name": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }
  }
}

为了创建_meta 数据,我需要先创建映射类型。

然后我运行下面的代码来为version 创建一个_meta 映射类型。

curl -X PUT -H 'Content-Type: application/json'  "http://localhost:9200/idx_1/_mapping" -d '
 {"_meta": { "version": {"type": "text"}}}'

我收到以下错误:

{
  "error": {
    "root_cause": [
      {
        "type": "action_request_validation_exception",
        "reason": "Validation Failed: 1: mapping type is missing;"
      }
    ],
    "type": "action_request_validation_exception",
    "reason": "Validation Failed: 1: mapping type is missing;"
  },
  "status": 400
}

它说缺少映射类型。我已将版本的type 指定为text。为什么说missing type

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    原来我查看了错误的文档版本。根据 Elasticsearch6 的文档https://www.elastic.co/guide/en/elasticsearch/reference/6.3/mapping-meta-field.html,正确的请求是:

    curl -X PUT "http://localhost:9200/idx1/_mapping/_doc" -H 'Content-Type: application/json' -d '{"_meta": {"version": "1235kljsdlkf"}}'
    

    【讨论】:

      猜你喜欢
      • 2015-12-03
      • 2022-12-25
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 2016-06-30
      • 2017-02-15
      • 2019-06-19
      • 2015-05-27
      相关资源
      最近更新 更多