Отображение индекса Elasticsearch вложенных полей из входного плагина couchdb_changes, перезаписанного logstash - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь использовать входной плагин logsta sh couchdb_changes для заполнения индекса эластичного поиска данными из couchdb, как описано здесь , но независимо от того, в какой конфигурации я использую сопоставления индекса для полей, которые мне бы хотелось для типа «вложенный» всегда перезаписывается.

Я запускаю logsta sh, используя файл конфигурации ниже

  couchdb_changes {
    type => "meet"
    db => "meet_db"
    host => "127.0.0.1"
    port => 5984
    initial_sequence => 0
  }
}

filter {
  if [@metadata][action] == "delete" {
    mutate {
      add_field => {"elastic_action" => "delete"}
    }
  } else {
    mutate {
      add_field => {"elastic_action" => "index"}
    }
  } 
}

output {
  elasticsearch {
    index => "meet-%{+YYYY.MM.dd}"
    document_id => "%{[@metadata][_id]}"
    action => "%{elastic_action}"
    manage_template => true
    template => "/path-to-template file/my-template.json"
    template_name => "meet_template"
  }
}

... и параметр шаблона, указанный для выводаasticsearch ("/path-to-template-file/my-template.json) как показано ниже

  "index_patterns": ["meet-*"],
    "mappings": {
    "doc": {
      "properties": {
        "start": {"type": "date"},
        "end": {"type": "date"},
        "title": {"type": "text"},
        "country": {
          "type": "object",
          "properties": {
            "code": {"type": "keyword"},
          }
        },
        "course": {"type": "keyword"},
        "code": {"type": "keyword"},
        "venue": {
          "type": "object",
          "properties": {
            "pool_size": {"type": "integer"},
            "pool_lanes": {"type": "integer"}
          }
        },
        "teams": {
          "type": "nested",
          "properties": {
            "name": {"type": "text"},
            "code": {"type": "keyword"},
            "short_name": {"type": "text"}
          }
        },
        "events": {
          "type": "nested",
          "properties": {
            "type": {"type": "keyword"},
            "stroke": {
              "type": "object",
              "properties": {
                "short_name": {"type": "keyword"}
              }
            },
            "distance": {"type": "integer"},
            "entries": {
              "type": "nested",
              "properties": {
                "name": {"type": "text"},
                "age": {"type": "integer"}
              }
            }
          }
        }
      }
    }
  }
}

Но когда я проверяю сопоставление индекса, которое создается при запуске logsta sh, все поля, которые я хотел бы вкладывать в соответствии с шаблоном индекса, не имеют своего типа, установленного как вложенный. Что я могу сделать, чтобы logsta sh не перезаписывал мои отображения индекса?

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