Как я могу создать метаданные на Elasticsearch? - PullRequest
0 голосов
/ 21 октября 2019

Я использую 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 данные, мне нужно сначала создать тип отображения.

И я запускаю приведенный ниже код, чтобы создать _meta тип отображения для version.

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?

1 Ответ

0 голосов
/ 21 октября 2019

Оказывается, я посмотрел не ту версию документа. На основании документа для 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"}}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...