Как создать подобъект в Elastic-search 7.x - PullRequest
0 голосов
/ 19 июня 2019

Раньше я использовал версию 1.x и создавал сопоставление подобъектов, используя следующий синтаксис.

"foo": {
            "type": "integer",
            "doc_values": true
        },
"foo.bar": {
            "type": "integer",
            "doc_values": true
        },
"foo.bar.baz": {
            "type": "integer",
            "doc_values": true
        },

Но теперь, когда я использую тот же синтаксис сопоставления в ES 7.x, я получаю ошибку ниже: -

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "Can't merge a non object mapping [foo] with an object mapping [foo]"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "Can't merge a non object mapping [foo] with an object mapping [foo]"
    },
    "status": 400
}

Я получил это сообщение SO Невозможно объединить сопоставление не объектов с ошибкой сопоставления объектов в модуле машинного обучения (бета) Но, ПримечаниеЯ не обновляю сопоставление, вместо этого я создаю новое сопоставление, все еще получая эту ошибку, пожалуйста, посоветуйте, что делать?

1 Ответ

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

Пример типа объекта.Для получения дополнительной информации см. здесь

"mappings": {
    "properties": { 
      "user": { 
        "properties": {
          "age":  { "type": "integer" },
          "name": { 
            "properties": {
              "first": { "type": "text" },
              "last":  { "type": "text" }
            }
          }
        }
      }
    }

Ниже имя может быть определено как объект, а дополнительные свойства могут быть добавлены с помощью name.firstname и т. Д. В вашем отображении foo имеет тип integer, а затемВы добавляете foo.bar, чтобы он выдавал ошибку.foo должен иметь тип object.

"properties" : {
            "name" : {
                "type" : "object"
            },
            "name.firstname":{
              "type" : "text"
            },
            "name.lastname":{
              "type" : "text"
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...