elasticsearch,Regex,elasticsearch" /> elasticsearch,Regex,elasticsearch" />

Regex 弹性搜索匹配词

Regex 弹性搜索匹配词,regex,elasticsearch,Regex,elasticsearch,我有个问题。我希望我的查询与mysql匹配!,mysql(,mysql…,换句话说,我希望我的查询结果只显示这些值,这些值只有单词“mysql”或单词“mysql”,并且这个单词周围有特殊字符。 例如,查询应该得到-mysql、mysql、#mysql、mysql$。而不是“mysql和R”或“mysql-mysql” 我尝试了此查询以进行匹配,但我一直得到格式不正确的查询,在start\u对象之后没有字段,所以不确定要做什么。 还想问一下,是否有其他选项来执行相同的任务 POST skills

我有个问题。我希望我的查询与mysql匹配!,mysql(,mysql…,换句话说,我希望我的查询结果只显示这些值,这些值只有单词“mysql”或单词“mysql”,并且这个单词周围有特殊字符。 例如,查询应该得到-mysql、mysql、#mysql、mysql$。而不是“mysql和R”或“mysql-mysql”

我尝试了此查询以进行匹配,但我一直得到格式不正确的查询,在start\u对象之后没有字段,所以不确定要做什么。 还想问一下,是否有其他选项来执行相同的任务

POST skills/_search
{
    "query": {
        "filtered": {
           "query": {
                "match": {
                   "skillname": "mysql"
                }
           },
           "filter": {
                "type":"pattern_capture",
                "patterns":["mysql([@#]\\w+)"],
                "preserve_original": true
           }
        }
    }
}

现在还不太清楚你想做什么。@WiktorStribiżew我更新了我的问题。所以基本上我想从搜索中只得到这些值,这些值只有一个单词mysql或是带有特殊字符的单词mysql。我希望我能解释清楚。似乎你的正则表达式应该是
“[^a-zA-Z0-9]*mysql[^a-zA-Z0-9]*”
。你能发布你的映射吗?这很不清楚,因为对于不同类型的字段,我们可以有不同的行为。