首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在elasticsearch中使用regexp?

如何在elasticsearch中使用regexp?
EN

Stack Overflow用户
提问于 2016-05-23 06:48:58
回答 4查看 664关注 0票数 0

我在elcsearch中有很多字段名,例如:

web_logfield_A,web_logfield_B,web_logfield_C::abc,apach_logfield_A,apach_logfield_A

如果我想得到这些字段值( web_logfield_A,web_logfield_B,web_logfield_C::abc )

我是否可以使用“字段名”的Regex表达式来查询

代码语言:javascript
复制
/web_logfield[A-Za-a_]+/

我已经尝试使用.setQuery(QueryBuilders.termQuery("",""),但是看起来不能这么做吗?JAVA中的哪种方法可以做到这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-23 08:34:19

您应该尝试使用这样的query_string查询

代码语言:javascript
复制
.setQuery(QueryBuilders.queryStringQuery("xyz").field("web_logfield_*"))

在这些字段中,xyz是您想要匹配的

票数 0
EN

Stack Overflow用户

发布于 2016-05-23 06:54:00

根据特定的格式,您可以使用以下内容:

代码语言:javascript
复制
web_logfield[^,]+

甚至是

代码语言:javascript
复制
web_logfield_[^,]+

也就是说:在web_logfield之后把所有的东西都放到逗号上。

在行动中看到它:https://regex101.com/r/dT4nJ2/1

要处理结果,您可以使用create an array of the regex matches

票数 0
EN

Stack Overflow用户

发布于 2016-05-23 07:08:52

在regex中,"+“表示有一个字符要匹配,因此您的正则表达式不能匹配"web_logfield_C::abc",我认为您可以使用”web_logfield_A+*“,它可以匹配"+”之前的一个或多个字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37384276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档