弹性搜索mapper_parsing_exception错误

时间:2019-05-10 13:01:37

标签: elasticsearch kibana

我已经使用名称测试在弹性搜索中创建了索引。索引映射如下:

{
    "title": {
        "type": "text",
        "fields": {
            "raw": {
                "type": "keyword"
            }
        }
    },
    "url": {
        "type": "text",
        "fields": {
            "raw": {
                "type": "keyword"
            }
        }
    }
}

创建索引后,我在其中添加了以下文档:

 {
    "title": "demo",
    "url": {
        "name": "tiger",
        "age": 10
    }
}

但是我遇到以下错误:

  

{“ mapper_parsing_exception”,“原因”:“无法解析以下字段的[url]   输入[文字]“}

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

如果您的文档如下所示:

{
    "title": "demo",
    "url": {
        "name": "tiger",
        "age": 10
    }
}

然后,您的映射需要看起来像这样,即url是具有nameage字段的对象:

{
  "title": {
    "type": "text",
    "fields": {
      "raw": {
        "type": "keyword"
      }
    }
  },
  "url": {
    "properties": {
      "name": {
        "type": "text",
        "fields": {
          "raw": {
            "type": "keyword"
          }
        }
      },
      "age": {
        "type": "integer"
      }
    }
  }
}

答案 1 :(得分:0)

嗨,您需要像这样创建映射

PUT test
{
    "settings" : {
        "number_of_shards" : 1
    },
    "mapping": {
    "title": {
      "type": "text",
      "fields": {
        "raw": {
          "type": "keyword"
        }
      }
    },
    "url": {
      "type": "text",
      "fields": {
        "raw": {
          "type": "keyword"
        }
      }
    }
  }
} 

文档是

put test/doc/1
{
    "title": "demo",
    "url": {
        "name": "tiger",
        "age": 10
    }
}


GET test/doc/1

结果是

{
  "_index" : "test",
  "_type" : "doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "title" : "demo",
    "url" : {
      "name" : "tiger",
      "age" : 10
    }
  }
}