Elasticsearch创建自定义analyzer报illegal_argument_exception如何解决
问题原因
你的配置错误是自定义filter的层级嵌套错误:你将filter节点写到了analyzer节点的内部,Elasticsearch会把键名filter识别为一个新的自定义分析器名称,而这个分析器没有配置必填的tokenizer或分析器类型,因此触发报错。analysis节点下的analyzer和filter是平级关系,不是包含关系,报错信息里的analyzer [filter]就是ES把你放错位置的filter节点当成分析器处理的直接证明。
修正后的配置
{ "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer" : "standard", "filter" : ["custom_stopper", "custom_stems", "custom_synonyms"] } }, "filter" : { "custom_stopper" : { "type" : "stop", "stopwords_path" : "analyze/stopwords.txt" }, "custom_stems" : { "type" : "stemmer_override", "rules_path" : "analyze/stem.txt" }, "custom_synonyms" : { "type" : "synonyms", "synonyms_path" : "analyze/synonym.txt" } } } } }
内容的提问来源于stack exchange,提问作者Darkknight
相关产品推荐
相关产品推荐

