【发布时间】:2014-01-14 11:18:35
【问题描述】:
我在正确表达 ElasticSearch 正则表达式过滤器的正则表达式时遇到问题。我正在尝试匹配 url 字段中“info-for/media”中的任何内容,例如http://mydomain.co.uk/info-for/media/press-release-1。为了尝试正确使用正则表达式,我现在使用match_all,但这最终将是match_phrase 和用户的查询字符串。
POST 到 localhost:9200/_search
{
"query" : {
"match_all" : { },
"filtered" : {
"filter" : {
"regexp": {
"url":".*info-for/media.*"
}
}
}
},
}
这会返回 0 次点击,但会正确解析。 .*info.* 确实得到包含 url 的结果,但不幸的是太宽泛了,例如匹配任何包含“信息”的网址。一旦我在“info-for”中添加连字符,我再次得到 0 个结果。无论我尝试哪种转义字符组合,我都会得到解析异常,或者没有匹配。任何人都可以帮助解释我做错了什么吗?
【问题讨论】:
标签: regex elasticsearch