asticsearch mapper_parsing_exception Root определение отображения имеет неподдерживаемые параметры - PullRequest
1 голос
/ 12 марта 2020

У меня возникла следующая проблема сasticsearch 7 при попытке создать шаблон.

Когда я пытаюсь скопировать шаблон изasticsearch 6 в 7 и некоторые поля, которые я удалил в соответствии сластиком поиска 7 .e

{
  "error": {
    "root_cause": [
      {
        "type": "mapper_parsing_exception",
        "reason": "Root mapping definition has unsupported parameters:  [events : {properties={msg={fields={raw={type=keyword}}}, requestId={type=keyword}, logger={type=keyword}, host={type=keyword}, jwtOwner={type=keyword}, requestOriginator={type=keyword}, tag={analyzer=firsttoken, fields={disambiguator={analyzer=keyword, type=text}}}, jwtAuthenticatedUser={type=keyword}, thread={type=keyword}, requestChainOriginator={type=keyword}, revision={type=keyword}}}]"
      }
    ],
    "type": "mapper_parsing_exception",
    "reason": "Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters:  [events : {properties={msg={fields={raw={type=keyword}}}, requestId={type=keyword}, logger={type=keyword}, host={type=keyword}, jwtOwner={type=keyword}, requestOriginator={type=keyword}, tag={analyzer=firsttoken, fields={disambiguator={analyzer=keyword, type=text}}}, jwtAuthenticatedUser={type=keyword}, thread={type=keyword}, requestChainOriginator={type=keyword}, revision={type=keyword}}}]",
    "caused_by": {
      "type": "mapper_parsing_exception",
      "reason": "Root mapping definition has unsupported parameters:  [events : {properties={msg={fields={raw={type=keyword}}}, requestId={type=keyword}, logger={type=keyword}, host={type=keyword}, jwtOwner={type=keyword}, requestOriginator={type=keyword}, tag={analyzer=firsttoken, fields={disambiguator={analyzer=keyword, type=text}}}, jwtAuthenticatedUser={type=keyword}, thread={type=keyword}, requestChainOriginator={type=keyword}, revision={type=keyword}}}]"
    }
  },
  "status": 400
}

Шаблон сопоставления: Вот шаблон, который я пытаюсь опубликовать.

POST _template/logstash
{
    "order" : 0,
    "index_patterns" : [
      "logstash*"
    ],
    "settings" : {
      "index" : {
        "analysis" : {
          "filter" : {
            "firsttoken" : {
              "type" : "pattern_capture",
              "preserve_original" : "false",
              "patterns" : [
                """^([^\.]*)\.?.*$"""
              ]
            },
            "secondtoken" : {
              "type" : "pattern_capture",
              "preserve_original" : "false",
              "patterns" : [
                """^[^\.]*\.([^\.]*)\.?.*$"""
              ]
            },
            "thirdtoken" : {
              "type" : "pattern_capture",
              "preserve_original" : "false",
              "patterns" : [
                """^[^\.]*\.[^\.]*\.([^\.]*)\.?.*$"""
              ]
            }
          },
          "analyzer" : {
            "firsttoken" : {
              "filter" : [
                "firsttoken"
              ],
              "tokenizer" : "keyword"
            },
            "secondtoken" : {
              "filter" : [
                "secondtoken"
              ],
              "tokenizer" : "keyword"
            },
            "thirdtoken" : {
              "filter" : [
                "thirdtoken"
              ],
              "tokenizer" : "keyword"
            }
          }
        },
        "mapper" : {

        }
      }
    },
    "mappings" : {
      "events" : {
        "properties" : {
          "msg" : {
            "type" : "text",
            "fields" : {
              "raw" : {
                "type" : "keyword"
              }
            }
          },
          "requestId" : {
            "type" : "keyword"
          },
          "logger" : {
            "type" : "keyword"
          },
          "host" : {
            "type" : "keyword"
          },
          "jwtOwner" : {
            "type" : "keyword"
          },
          "requestOriginator" : {
            "type" : "keyword"
          },
          "tag" : {
            "analyzer" : "firsttoken",
            "fields" : {
              "disambiguator" : {
                "analyzer" : "keyword",
                "type" : "text"
              }
            }
          },
          "jwtAuthenticatedUser" : {
            "type" : "keyword"
          },
          "thread" : {
            "type" : "keyword"
          },
          "requestChainOriginator" : {
            "type" : "keyword"
          },
          "revision" : {
            "type" : "keyword"
          }
        }
      }
    },
    "aliases" : { }
  }

Пожалуйста, помогите мне решить проблему. Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 12 марта 2020

Есть две проблемы. Одна проблема - это проблема, упомянутая @ OpsterESNinjaKamal

Но она все равно не будет работать, так как поле tag не имеет типа.

Вот шаблон, который будет работать:

PUT _template/logstash
{
  "order": 0,
  "index_patterns": [
    "logstash*"
  ],
  "settings": {
    "index": {
      "analysis": {
        "filter": {
          "firsttoken": {
            "type": "pattern_capture",
            "preserve_original": "false",
            "patterns": [
              "^([^\\.]*)\\.?.*$"
            ]
          },
          "secondtoken": {
            "type": "pattern_capture",
            "preserve_original": "false",
            "patterns": [
              "^[^\\.]*\\.([^\\.]*)\\.?.*$"
            ]
          },
          "thirdtoken": {
            "type": "pattern_capture",
            "preserve_original": "false",
            "patterns": [
              "^[^\\.]*\\.[^\\.]*\\.([^\\.]*)\\.?.*$"
            ]
          }
        },
        "analyzer": {
          "firsttoken": {
            "filter": [
              "firsttoken"
            ],
            "tokenizer": "keyword"
          },
          "secondtoken": {
            "filter": [
              "secondtoken"
            ],
            "tokenizer": "keyword"
          },
          "thirdtoken": {
            "filter": [
              "thirdtoken"
            ],
            "tokenizer": "keyword"
          }
        }
      },
      "mapper": {}
    }
  },
  "mappings": {
    "properties": {
      "msg": {
        "type": "text",
        "fields": {
          "raw": {
            "type": "keyword"
          }
        }
      },
      "requestId": {
        "type": "keyword"
      },
      "logger": {
        "type": "keyword"
      },
      "host": {
        "type": "keyword"
      },
      "jwtOwner": {
        "type": "keyword"
      },
      "requestOriginator": {
        "type": "keyword"
      },
      "tag": {
        "type": "text",                    <--- add type here
        "analyzer": "firsttoken",
        "fields": {
          "disambiguator": {
            "analyzer": "keyword",
            "type": "text"
          }
        }
      },
      "jwtAuthenticatedUser": {
        "type": "keyword"
      },
      "thread": {
        "type": "keyword"
      },
      "requestChainOriginator": {
        "type": "keyword"
      },
      "revision": {
        "type": "keyword"
      }
    }
  },
  "aliases": {}
}
0 голосов
/ 13 марта 2020

Извините, Vol и Opster Я пропустил добавление шаблона событий. Я удалил событие, потому что оно не принимает. Ниже приведен шаблон для событий.

PUT  _template/logstash
{
    "order" : 0,
    "index_patterns" : [
      "logstash*"
    ],
    "settings" : {
      "index" : {
        "analysis" : {
          "filter" : {
            "firsttoken" : {
              "type" : "pattern_capture",
              "preserve_original" : "false",
              "patterns" : [
                """^([^\.]*)\.?.*$"""
              ]
            },
            "secondtoken" : {
              "type" : "pattern_capture",
              "preserve_original" : "false",
              "patterns" : [
                """^[^\.]*\.([^\.]*)\.?.*$"""
              ]
            },
            "thirdtoken" : {
              "type" : "pattern_capture",
              "preserve_original" : "false",
              "patterns" : [
                """^[^\.]*\.[^\.]*\.([^\.]*)\.?.*$"""
              ]
            }
          },
          "analyzer" : {
            "firsttoken" : {
              "filter" : [
                "firsttoken"
              ],
              "tokenizer" : "keyword"
            },
            "secondtoken" : {
              "filter" : [
                "secondtoken"
              ],
              "tokenizer" : "keyword"
            },
            "thirdtoken" : {
              "filter" : [
                "thirdtoken"
              ],
              "tokenizer" : "keyword"
            }
          }
        },
        "mapper" : {

        }
      }
    },
    "mappings" : {
      "events" : {
        "properties" : {
          "msg" : {
            "type" : "text",
            "fields" : {
              "raw" : {
                "type" : "keyword"
              }
            }
          },
          "requestId" : {
            "type" : "keyword"
          },
          "logger" : {
            "type" : "keyword"
          },
          "host" : {
            "type" : "keyword"
          },
          "jwtOwner" : {
            "type" : "keyword"
          },
          "requestOriginator" : {
            "type" : "keyword"
          },
          "tag" : {
            "analyzer" : "firsttoken",
            "fields" : {
              "disambiguator" : {
                "analyzer" : "keyword",
                "type" : "text"
              }
            },
            "type" : "text"
          },
          "jwtAuthenticatedUser" : {
            "type" : "keyword"
          },
          "thread" : {
            "type" : "keyword"
          },
          "requestChainOriginator" : {
            "type" : "keyword"
          },
          "revision" : {
            "type" : "keyword"
          }
        }
      }
    },
    "aliases" : { }
  }
0 голосов
/ 12 марта 2020

Обратите внимание на mappings. ES post версия 7.0, не поддерживает type, т.е. events в этом случае, и это было устарело .

После версии 7.0 вам нужно будет создать отдельный индекс для каждого type, который был в индексе до версии 7.0.

Эта ссылка должна помочь вам в том, как вы можете перейти с версии 6.x на 7.x

В основном ваш раздел mappings будет выглядеть следующим образом:

{
   "mappings":{
      "properties":{                     <---- Notice there is no `events` before `properties` as mentioned in your question
         "msg":{
            "type":"text",
            "fields":{
               "raw":{
                  "type":"keyword"
               }
            }
         },
         "requestId":{
            "type":"keyword"
         },
         "logger":{
            "type":"keyword"
         },
         "host":{
            "type":"keyword"
         },
         "jwtOwner":{
            "type":"keyword"
         },
         "requestOriginator":{
            "type":"keyword"
         },
         "tag":{
            "analyzer":"firsttoken",
            "fields":{
               "disambiguator":{
                  "analyzer":"keyword",
                  "type":"text"
               }
            }
         },
         "jwtAuthenticatedUser":{
            "type":"keyword"
         },
         "thread":{
            "type":"keyword"
         },
         "requestChainOriginator":{
            "type":"keyword"
         },
         "revision":{
            "type":"keyword"
         }
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...