【问题标题】:ElasticSearch Mapping CharfilterElasticSearch 映射字符过滤器
【发布时间】:2013-04-14 18:14:21
【问题描述】:

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

(安迪)

据我所知,如果我执行 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

【问题讨论】:

    标签: mapping elasticsearch


    【解决方案1】:

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

    【讨论】:

    • 谢谢 imotov。删除多余的逗号确实解决了错误问题。但是现在我收到错误消息:“{“error”:“IndexAlreadyExistsException[[xenforo113] 已经存在]”,“status”:400}”。在阅读更多关于我想做的事情时,我无法将此映射添加到现有索引。我想我需要删除索引,创建一个新的分析器并重新索引。
    • 是的,您需要删除索引并重新索引。
    猜你喜欢
    • 2014-07-23
    • 2016-10-30
    • 2015-12-03
    • 2019-05-19
    • 1970-01-01
    • 2022-01-20
    • 2011-04-10
    • 1970-01-01
    • 2021-12-05
    相关资源
    最近更新 更多