【问题标题】:How to search a field having a colon(:) value in elasticsearch如何在elasticsearch中搜索具有冒号(:)值的字段
【发布时间】:2017-02-21 11:54:14
【问题描述】:

我有一个字段"macaddress": "ff:ff:00:57:29:05"

如何避免冒号(:) 将其视为正则表达式通配符。尝试使用斜杠(\)转义字符串,但查询失败

{
"query": {
    "wildcard": {
        "macaddress": "57:"
    }
 }
}

我想搜索类似 57:25* 的内容,我该如何实现?

【问题讨论】:

    标签: regex elasticsearch wildcard querydsl mac-address


    【解决方案1】:

    使用 match_phase 代替通配符。
    wildcard 是匹配任何字符序列(包括空字符序列)的 * 和匹配任何单个字符的 ?。

    {
        "query": {
            "match_phrase":{
                "macaddress":"57:29"
            }
        }
    }
    

    【讨论】:

    • 使用match_phraseprefix 等可能是另一种选择。但想知道我们如何在进行通配符搜索时避开这些特殊字符
    • @Steve 好吧.. 我没有。线程..每个人都说通配符不能逃脱冒号..但我会寻找它..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 2017-12-24
    • 2020-09-12
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多