无法在Elasticsearch 6.1.2的映射中插入Analyzer

时间:2018-02-28 08:28:32

标签: java elasticsearch indexing mapping analyzer

我曾尝试在索引中插入以下映射以支持搜索功能。

    {
    "settings": {
        "analysis": {
            "normalizer": {
                "keyword_lowercase": {
                            "type": "custom",
                            "filter": [
                                    "lowercase"
                                        ]
                                    }
                            }
                    }
                },
    "mapping": {
        "org-4-table": {
            "properties": {
                "GroupName": {
                        "type": "text",
                        "normalizer": "keyword_lowercase",
                        "fielddata": true,
                        "fields": {
                            "keyword": {
                                "type": "keyword"
                                        }
                                    }
                                },
                "Createdby": {
                        "type": "text",
                        "normalizer": "keyword_lowercase",
                        "fielddata": true,
                        "fields": {
                            "keyword": {
                                "type": "keyword"
                                        }
                                }
                            }
            .
            .
            .
            .
                "status": {
                        "type": "text",
                        "normalizer": "keyword_lowercase",
                        "fielddata": true,
                        "fields": {
                            "keyword": {
                                "type": "keyword"
                                    }
                                }
                        }
                    }
                }
            }
    }

但我收到以下异常

    Elasticsearch exception [type=mapper_parsing_exception, reason=Failed to parse mapping [org-4-table]: Root mapping definition has unsupported parameters:  [settings : {analysis={normalizer={keyword_lowercase....]

这是我用于插入映射的代码:

     CreateIndexRequest createIndexRequest = new CreateIndexRequest(indexName);
     createIndexRequest.mapping(typeName, mapping.toString(),XContentType.JSON);

如果我尝试插入没有"设置"字段我能够插入映射。

Elasticsearch 6.1.2

任何帮助表示感谢。

更新1:

{
  "settings": {
    "analysis": {
        "normalizer": {
            "keyword_lowercase": {
                "type": "custom",
                "filter": ["lowercase"]
            }
        }
    }
},
"mapping": {
    "org-4-table": {
        "properties": {

            "GroupName": {
                "type": "text",
                "fielddata": true,
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "normalizer": "keyword_lowercase"
                    }
                }
            },
            "Createdby": {
                "type": "text",
                "fielddata": true,
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "normalizer": "keyword_lowercase"
                    }
                }
            },
            "GroupUser": {
                "type": "text",
                "fielddata": true,
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "normalizer": "keyword_lowercase"
                    }
                }
            },
            "UpdatedDateTime": {
                "type": "text",
                "fielddata": true,
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "normalizer": "keyword_lowercase"
                    }
                }
            },
            "GroupMessage": {
                "type": "text",
                "fielddata": true,
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "normalizer": "keyword_lowercase"
                    }
                }
            },
            "CreatedDateTime": {
                "type": "text",
                "fielddata": true,
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "normalizer": "keyword_lowercase"
                    }
                }
            },
            "GroupId": {
                "type": "text",
                "fielddata": true,
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "normalizer": "keyword_lowercase"
                    }
                }
            },
            "status": {
                "type": "text",
                "fielddata": true,
                "fields": {
                    "keyword": {
                        "type": "keyword",
                        "normalizer": "keyword_lowercase"
                    }
                }
            }
        }
    }
}

}

即使我得到同样的异常

   Elasticsearch exception [type=mapper_parsing_exception, reason=Failed to parse mapping [org-4-table]: Root mapping definition has unsupported parameters:  [settings : {analysis={normalizer={keyword_lowercase={filter=[lowercase], type=custom}}}}] [mapping : {org-4-table={properties={GroupName={fielddata=true, type=text, fields={keyword={normalizer=keyword_lowercase, type=keyword}}}, Createdby={fielddata=true, type=text, fields={keyword={normalizer=keyword_lowercase, type=keyword}}}, GroupUser={fielddata=true, type=text, fields={keyword={normalizer=keyword_lowercase, type=keyword}}}, UpdatedDateTime={fielddata=true, type=text, fields={keyword={normalizer=keyword_lowercase, type=keyword}}}, GroupMessage={fielddata=true, type=text, fields={keyword={normalizer=keyword_lowercase, type=keyword}}}, CreatedDateTime={fielddata=true, type=text, fields={keyword={normalizer=keyword_lowercase, type=keyword}}}, GroupId={fielddata=true, type=text, fields={keyword={normalizer=keyword_lowercase, type=keyword}}}, status={fielddata=true, type=text, fields={keyword={normalizer=keyword_lowercase, type=keyword}}}}}}]]

0 个答案:

没有答案