我的目标是能够搜索带有括号的单词,例如:

(安迪)

从我可以判断出是否执行Mapping Charfilter并将括号更改为下划线,这将完成我的工作。

    "index" : {
        "analysis" : {
            "char_filter" : {
                "my_mapping" : {
                    "type" : "mapping",
                    "mappings" : ["( => _", ") => _"]
                }
            },
            "analyzer" : {
                "custom_with_char_filter" : {
                    "tokenizer" : "standard",
                    "char_filter" : ["my_mapping"]
                },
            }
        }
    }
}';

当我运行以上命令时,出现以下错误:

{“error”:“ElasticSearchParseException [无法解析用于创建索引的源];嵌套:JsonParseException [意外字符('}'(代码125)):期望有效的名称字符(用于未引用的名称)或双引号(用于以引号开头的字段名称\ n [源:[B @ 70de7f1b;第15行,第14列]];“,”状态“:400}

最佳答案

仔细重新阅读错误消息。它包含您需要解决的所有信息。基本上,在第14行上有一个逗号,因此解析器希望它后面跟随一个名称,而在第15行第14列上得到'}'。

关于mapping - ElasticSearch映射Charfilter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16002588/

10-11 09:09