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