regex - 在Elasticsearch字词查询中使用正则表达式

标签 regex elasticsearch

我想找到所有通过ID过滤的项目都匹配一些正则表达式,例如

*TEST123*   //pattern for regexp

所以预期的结果是项目

ATEST123001

ATEST123002

ATEST123003

TTTTEST123001

...

我可以创建一些脚本来扫描全部存储并将ID保存在日志文件中,以便以后检查。但是我想找到一些更好的解决方案

更新了
我试过了
"query" : { "match_all" : { }, "filtered" : { "filter" : { "regexp": { "id":".test123." } } } }, }

我收到

//嵌套:ElasticsearchParseException [期望的字段名称,但获得START_OBJECT \“filtered \”]

当我尝试
{
  "regexp": {
    "id": "test123"
  }

}

//解析失败[元素[regexp]没有解析器]

ES 1.7.4和Lucene 4.10.4

最佳答案

您可以尝试Query String

{
"query": {
 "query_string": {
    "default_field": "if",
    "query": "*test123*"
   }
  }
}  

关于regex - 在Elasticsearch字词查询中使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36026883/

相关文章:

.net - 如何在某些文本中找到所有 Guid?

python - 使用正则表达式 python 在模式后获取句子

python 正则表达式仅保留以字母开头并以 [a-zA-Z0-9] 继续的单词

elasticsearch - 如何在Elastic Search中处理html编码的文本?

hadoop - Elasticsearch Hadoop

java - 正则表达式解析命令行选项

javascript - 正则表达式按引号和加号拆分

elasticsearch - Azure 诊断 + Logstash

java - 如何使用elasticsearch java api连接位于不同服务器上的多个节点?

java - 如何将监听 hibernate 事件的模块与实体本身分离?