elasticsearch 弹性搜索映射程序\u分析\u异常错误
我已经用name test在弹性搜索中创建了一个索引。索引映射如下所示:elasticsearch 弹性搜索映射程序\u分析\u异常错误,elasticsearch,kibana,elasticsearch,Kibana,我已经用name test在弹性搜索中创建了一个索引。索引映射如下所示: { "title": { "type": "text", "fields": { "raw": { "type": "keyword" } } }, "url": { "type": "text", "fields": {
{
"title": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"url": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
创建索引后,我向其中添加了以下文档:
{
"title": "demo",
"url": {
"name": "tiger",
"age": 10
}
}
但我得到了以下错误:
{“mapper\u parsing\u exception”,“reason”:“未能解析的字段[url]
键入[文本]“}
有人能帮我解释一下吗?如果您的文档是这样的:
{
"title": "demo",
"url": {
"name": "tiger",
"age": 10
}
}
然后您的映射需要如下所示,即url
是一个具有name
和age
字段的对象:
{
"title": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"url": {
"properties": {
"name": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"age": {
"type": "integer"
}
}
}
}
如果您的文档如下所示:
{
"title": "demo",
"url": {
"name": "tiger",
"age": 10
}
}
然后您的映射需要如下所示,即url
是一个具有name
和age
字段的对象:
{
"title": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"url": {
"properties": {
"name": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"age": {
"type": "integer"
}
}
}
}
您好,您需要像这样创建映射
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
}
}
}
您好,您需要像这样创建映射
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
}
}
}
是的,它工作正常,但在我的例子中,我的url字段不是json对象,每次它都像普通文本一样:{“url”:“/abc”}名字和年龄并不是每次都以字段的形式出现,基本上一切都是动态的,所以我不知道它是文本还是对象,如果它是对象,我不知道对象的键,那么我如何处理这个问题?这确实是个问题,在接收之前需要一个处理步骤,以便标准化您的文档。A在这里可能会有所帮助。但是在这里我如何更改url字段的数据类型我已经在映射中创建了文本类型的url字段?如何解决这个错误?是的,它工作得很好,但在我的例子中,我的url字段不是json对象,有时它像普通文本一样:{“url”:“/abc”}名字和年龄并不是每次都以字段的形式出现,基本上一切都是动态的,所以我不知道它是文本还是对象,如果它是对象,我不知道对象的键,那么我如何处理这个问题?这确实是个问题,在接收之前需要一个处理步骤,以便标准化您的文档。A在这里可能会有所帮助。但是在这里我如何更改url字段的数据类型我已经在映射中创建了文本类型的url字段?如何解决这个错误呢?