regex - 正则表达式查询es 1.7

标签 regex elasticsearch

我正在编写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/

相关文章:

java电子邮件提取正则表达式?

python - 如何在 Python 中查找所有出现的模式及其索引

python - 正则表达式和 grep 异常匹配

elasticsearch - Elasticsearch river-5次尝试后未找到_meta文档

elasticsearch - 创建具有30-40或更多列的索引时,我应该了解/关注什么?

elasticsearch - Elasticsearch如何使用智能中文分析?

php - 这个条件的正则表达式是什么?

java - Pattern.compile 缓存吗?

elasticsearch - NEST是否支持嵌套数据类型?

elasticsearch - ElasticSearch-在查询结果上限制嵌套集合的大小