我在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表达式来查询
/web_logfield[A-Za-a_]+/我已经尝试使用.setQuery(QueryBuilders.termQuery("",""),但是看起来不能这么做吗?JAVA中的哪种方法可以做到这一点?
发布于 2016-05-23 08:34:19
您应该尝试使用这样的query_string查询
.setQuery(QueryBuilders.queryStringQuery("xyz").field("web_logfield_*"))在这些字段中,xyz是您想要匹配的
发布于 2016-05-23 06:54:00
根据特定的格式,您可以使用以下内容:
web_logfield[^,]+甚至是
web_logfield_[^,]+也就是说:在web_logfield之后把所有的东西都放到逗号上。
在行动中看到它:https://regex101.com/r/dT4nJ2/1
要处理结果,您可以使用create an array of the regex matches。
发布于 2016-05-23 07:08:52
在regex中,"+“表示有一个字符要匹配,因此您的正则表达式不能匹配"web_logfield_C::abc",我认为您可以使用”web_logfield_A+*“,它可以匹配"+”之前的一个或多个字符。
https://stackoverflow.com/questions/37384276
复制相似问题