ElasticSearch - copy_to с динамическим шаблоном - PullRequest
0 голосов
/ 16 октября 2018

В ответ на мой предыдущий вопрос: Отображение переопределения ElasticSearch из текста в объект

У меня есть шаблон индекса:

{
"template" : "project.*",
  "order" : 100,
  "dynamic_templates": [
    {
      "message_field": {
        "mapping": {
          "type": "object"
        },
        "match": "message"
      },
      "message_properties": {
        "path_match":   "message.*",
        "mapping": {
          "type": "string",
          "index": "not_analyzed"
        }
      }
    }
  ]
}

, который в основном создает новые поля для всегопод полем «сообщение».Я делаю это, потому что поле «сообщение» отображается как строка в другом шаблоне индекса, и я переопределяю его.

Образец документа:

{
  "level": "30",
  ...
  "kubernetes": {
    "container_name": "data-sync-server",
    "namespace_name": "alitest03",
    ...
  },
  "message": {
    "tag": "AUDIT",
    "requestId": 1234,
    ...
    },
  }
  ...
}

Это работает нормально, но в итоге получаетсясоздание полей верхнего уровня, таких как «tag» и «requestId».Я не хочу загрязнять верхний уровень и хотел бы иметь такие поля, как "audit.tag", "audit.requestId".

Попробовал использовать copy_to, как это, но я не вижу никакихПоля «Audit. *»:

{
  "template" : "project.*",
  "order" : 100,
  "dynamic_templates": [
    {
      "message_field": {
        "mapping": {
          "type": "object"
        },
        "match": "message"
      },
      "message_properties": {
        "path_match":   "message.*",
        "mapping": {
          "type": "string",
          "index": "not_analyzed",
          "copy_to" : "audit.{name}"
        }
      }
    }
  ]
}

Пример результатов поиска при использовании шаблона выше с copy_to приведен ниже.Я не вижу полей "Audit. *".

{
  "timestamp": "October 15th 2018, 15:46:15.994",
  "_id": "YmI1NDRjMTgtZTY3Ni00ZGUxLTk2NDMtOTJhZjk3ZWU1YTJj",
  "_index": "project.alitestproj02.aa564e69-c643-11e8-af2a-fa163e4c9c9e.2018.10.15",
  "_score": "",
  "_type": "com.redhat.viaq.common",
  ...
  "kubernetes.container_name": "data-sync-server",
  "kubernetes.namespace_name": "alitestproj02",
  ...
  "message": "{\"level\":30,\"time\":1539607575994,\"pid\":19,\"hostname\":\"data-sync-server-6-pxcsm\",\"tag\":\"AUDIT\",\"msg\":\"\",\"requestId\":20355,\"operationType\":\"query\",\"parentTypeName\":\"Meme\",\"path\":\"allMemes.866.owner\",\"success\":true,\"parent\":{\"_type\":\"meme\",\"photourl\":\"photo472\",\"owner\":\"owner35\",\"likes\":0,\"_id\":\"zzEnLAQmQeuTC1mj\",\"createdAt\":\"2018-10-15T11:58:33.896Z\",\"updatedAt\":\"2018-10-15T11:58:33.896Z\",\"id\":\"zzEnLAQmQeuTC1mj\"},\"arguments\":{},\"dataSourceType\":\"InMemory\",\"v\":1}\n",
  "requestId": "20355",
  "tag": "AUDIT",
  ...
  "v": 1
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...