我已经使用名称测试在弹性搜索中创建了索引。索引映射如下:
{
"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] 输入[文字]“}
有人可以帮我吗?
答案 0 :(得分:0)
如果您的文档如下所示:
{
"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"
}
}
}
}
答案 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
}
}
}