我正在编写elasticsearch(v 1.7)查询,以查找所有不以http开头的网址。但是我的映射结果为空结果(尽管我肯定有不以http开头的url)。你能帮我解决吗?
"query": {
"regexp":{
"url": {
"value": "@&~(http.+)",
"flags" : "ANYSTRING"
}
}
}
最佳答案
删除flags
后,您的查询应该可以正常工作:
"query": {
"regexp":{
"url": {
"value": "@&~(http.+)",
}
}
}
或者,如果您使用
ALL
(默认)作为flags
值:"query": {
"regexp":{
"url": {
"value": "@&~(http.+)",
"flags" : "ALL"
}
}
}
ANYSTRING
仅启用@
运算符,而~
通过COMPLEMENT
标志启用,而&
运营商通过INTERSECTION
标志启用。基本上,使用默认值更安全。
关于regex - 正则表达式查询es 1.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431166/