Solr Webapp正则表达式搜索

时间:2016-03-01 16:22:47

标签: java regex solr lucene

我正在关注Solr quick start tutorial并启动并运行Web应用程序。我知道Solr有一个正则表达式搜索功能,我很难让它工作。

enter image description here

所以在这里,我有一个名为MFR的字段,我想使用正则表达式来匹配像AVAGO这样的值。但是,它给了我错误,如无法正确解析它,然后我试图逃避某些字符,所有以下都没有工作:

MFR:AV\[A\]GO
MFR:AV/[A/]GO
MFR:AV/[A/]GO
MFR:"AV\[A\]GO"
MFR:"AV/[A/]GO"
MFR:"AV[A]GO"

现在,我开始问自己q参数是正确的地方,我可以放正则表达式,或者我甚至不在球场。

我还在played中使用Eclipse中的TestRegexpQuery运行单元测试,显然,查询是一种不同类型的查询。如何在GUI中使用正则表达式?

1 个答案:

答案 0 :(得分:1)

您的问题是如何在query screen上使用RegExpQuery。

你已经在lucene中使用了RegExpQuery。

使用standard query parser作为默认solr。标准查询解析器支持RegexpQuery,但RegExp必须以斜杠字符/开头和结尾,如MRF:/AV[A-X]GO/MRF:/av[a-x]go/

请注意,正则表达式必须与倒排索引中的标记匹配,而不是与原始单词匹配。

E.g。 for FieldType" text_general"单词AVAGO将成为令牌avago,因此带有大写字母的regExpr将不匹配。

您可以使用solr analysis screen测试从单词(实际文本)到索引中相应标记的方式。

另请参阅:How to use regex for querying in Solr 4