【问题标题】:Can’t merge a non object mapping with an object mapping error in machine learning(beta) module无法在机器学习(测试版)模块中将非对象映射与对象映射错误合并
【发布时间】:2017-06-08 12:19:59
【问题描述】:

我正在试用 x pack 中的新机器学习模块。我正在尝试及时识别 HTTP 访问日志中的罕见响应代码。我的日志存储在 elasticsearch 中,如下所示:

{
  "_index": "logstash-2017.05.18",
  "_type": "Accesslog",
  "_id": "AVxvVfFGdMmRr-0X-J5P",
  "_version": 1,
  "_score": null,
  "_source": {
    "request": "/web/Q123/images/buttons/asdf.gif",
    "server": "91",
    "auth": "-",
    "ident": "-",
    "verb": "GET",
    "type": "Accesslog",
    "path": "/path/to/log",
    "@timestamp": "2017-05-18T10:20:00.000Z",
    "response": "304",
    "clientip": "1.1.1.1",
    "@version": "1",
    "host": "ip-10-10-10-10",
    "httpversion": "1.1",
    "timestamp": "18/May/2017:10:20:00 +0530"
  },
  "fields": {
    "@timestamp": [
      1495102800000
    ]
  }

我添加了一个检测器,我将函数选为“稀有”,将 by_field_name 选为“响应”。但是当我保存作业时,我收到以下错误:

Save failed: [illegal_argument_exception] Can't merge a non object mapping [response] with an object mapping [response]

请帮忙。

【问题讨论】:

  • 您找到解决方案了吗?
  • 嗨...找到了...您需要使用专用索引...详细答案在这里discuss.elastic.co/t/…

标签: elasticsearch elasticsearch-x-pack


【解决方案1】:

错误消息表示您正在尝试更改现有映射。但是,这在 Elasticsearch 中是不可能的。映射一经创建,便无法更改。

As explained by Shay Banon himself:

你不能改变现有的映射类型,你需要创建一个新的索引 使用正确的映射并再次索引数据。

所以你必须创建一个新的索引来创建这个映射。根据情况,你要么

  • 创建附加索引,或
  • 删除当前索引并从头开始重新创建。

当然,在后一种情况下,您将丢失索引中的所有数据,因此请做好相应的准备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多