Lucene的@(anystring)可选regexp语法的目的是什么?

时间:2016-02-22 17:13:23

标签: java regex lucene

我注意到这个可选的Lucene正则表达式语法,并且不确定它的用途是什么。在Lucene中执行正则表达式查询时,您可以将@作为带有ANYSTRING标志的特殊字符启用,如下所示:

new RegexpQuery(new Term("text", "abc@"), RegExp.ANYSTRING);

尝试了一些事情,似乎的行为与:

相同
new RegexpQuery(new Term("text", "abc.*"));

ElasticSearch docs请注意,它可以与其他可选语法一起使用,以提供“除”之外的任何查询,例如:

new RegexpQuery(new Term("text", "ab(@&~(cd))"), RegExp.ALL);

但即使这似乎与.*相反也可以正常工作:

new RegexpQuery(new Term("text", "ab(.*&~(cd))"), RegExp.ALL);

那么为什么存在这种可选的@语法?它只是.*的别名,还是我错过了两者之间的细微差别?

0 个答案:

没有答案