ElasticSearchMap器解析异常错误

q5iwbnjs  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(2)|浏览(185)

我在ElasticSearch中创建了一个名为test的索引。索引Map如下:

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

创建索引后,我已将以下文档添加到其中:

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

但我得到以下错误:
{“Map器解析异常”,“原因”:“无法解析类型为[文本]的字段[url]"}
有人能帮我吗?

hmtdttj4

hmtdttj41#

如果您的文稿如下所示:

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

然后,您的Map需要如下所示,即url是一个具有nameage字段的对象:

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

i1icjdpr2#

您好,您需要创建如下Map

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
    }
  }
}

相关问题