2

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

(安迪)

据我所知,如果我执行 Mapping Charfilter 并将括号更改为下划线,这将完成我所追求的。

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

当我运行上面我得到以下错误:

{"error":"ElasticSearchParseException[failed to parse source for create index]; 嵌套:JsonParseException[Unexpected character ('}' (code 125)): 期待有效的名称字符(用于未引用的名称)或双引号(用于引用)在 [Source: [B@70de7f1b; line: 15, column: 14]]; ","status":400} 处开始字段名称\n

4

1 回答 1

4

仔细重新阅读错误信息。它包含您需要的所有信息来解决这个问题。基本上,您在第 14 行有一个额外的逗号,因此解析器希望它后面跟着一个名称,而不是在第 15 行第 14 列得到“}”。

于 2013-04-14T20:56:15.433 回答