Простой ввод данных в упру - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь отправить данные вasticsearch, но сталкиваюсь с проблемой, когда мое числовое поле отображается только в виде строки.Вот шаги, которые я предпринял.

Шаг 1. Добавить индекс и карту

PUT http://123.com:5101/core_060619/

{
  "mappings": {
    "properties": {
      "date": {
        "type":   "date",
        "format": "HH:mm yyyy-MM-dd"
      },
        "data": {
        "type":   "integer"
      }
    }
  }
}

Результат:

{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "core_060619"
}

Шаг 2. Добавить данные

PUT http://123.com:5101/core_060619/doc/1

{
  "test" : [ {
    "data" : "119050300",
    "date" : "00:00 2019-06-03"
  } ]
}

Результат:

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "Rejecting mapping update to [zyxnewcoreyxbl_060619] as the final mapping would have more than 1 type: [_doc, doc]"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "Rejecting mapping update to [zyxnewcoreyxbl_060619] as the final mapping would have more than 1 type: [_doc, doc]"
    },
    "status": 400
}

1 Ответ

1 голос
/ 10 июня 2019

Вы не можете иметь более одного типа документов в Elasticsearch 6.0.0+. Если вы установите тип документа на doc, то вы можете добавить другой документ, просто PUT http://123.com:5101/core_060619/doc/1, PUT http://123.com:5101/core_060619/doc/2 и т. Д.

Elasticsearch 6. +

PUT core_060619/
{
  "mappings": {
    "doc": {     //type of documents in index is 'doc'
     "properties": {
        "date": {
          "type":   "date",
          "format": "HH:mm yyyy-MM-dd"
        },
          "data": {
          "type":   "integer"
        }
      }
    }
  }
}

Поскольку мы создали отображение для документов типа doc, теперь мы можем добавлять новые документы, просто добавив /doc/_id:

PUT core_060619/doc/1
{
  "test" : [ {
    "data" : "119050300",
    "date" : "00:00 2019-06-03"
  } ]
}


PUT core_060619/doc/2
{
  "test" : [ {
    "data" : "111120300",
    "date" : "10:15 2019-06-02"
  } ]
}  

Elasticsearch 7. +

Типы удалены, но вы можете использовать пользовательские поля:

PUT twitter
{
  "mappings": {
    "user": {
      "properties": {
        "name": { "type": "text" },
        "user_name": { "type": "keyword" },
        "email": { "type": "keyword" }
      }
    },
    "tweet": {
      "properties": {
        "content": { "type": "text" },
        "user_name": { "type": "keyword" },
        "tweeted_at": { "type": "date" }
      }
    }
  }
}

PUT twitter/user/kimchy
{
  "name": "Shay Banon",
  "user_name": "kimchy",
  "email": "shay@kimchy.com"
}

PUT twitter/tweet/1
{
  "user_name": "kimchy",
  "tweeted_at": "2017-10-24T09:00:00Z",
  "content": "Types are going away"
}

Удаление типов отображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...