我正在关注Solr quick start tutorial并启动并运行Web应用程序。我知道Solr有一个正则表达式搜索功能,我很难让它工作。
所以在这里,我有一个名为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中使用正则表达式?
答案 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测试从单词(实际文本)到索引中相应标记的方式。