Solr正则表达式搜索不正确的结果

时间:2013-02-08 11:37:59

标签: solr

我正在使用Solr 4.1并尝试使用Query进行正则表达式模式。样本数据是

56% AB, 78% DC
65% AB, 55% IJ
70% AB, 35% LJ

我正在尝试这种模式/([1-6][0-9]% AB)/,这不起作用所以我试过

/([1-6][1-9])??AB/

它显示了上述所有内容,因为当模式适用时它不使用AND运算符,并且它为每个字符应用OR运算符。对于Eg:以下结果也将出现

77% DD, 89% FF

有没有人尝试使用Solr 4.0及更高版本的正则表达式?

1 个答案:

答案 0 :(得分:0)

如果您的字段属于string类型,则可以尝试: /[1-6][0-9]. AB.*/

(我在text字段上尝试了相同的正则表达式搜索,但它不匹配,很可能是因为标记化。)

我知道这是一个比你正在寻找的更松散的匹配,因为它将匹配第三个位置的任何字符,但Solr REST API不喜欢正则表达式中的%。 (我不确定SolrJ或其他客户端库是否可以处理它。)据说,这种模式肯定会排除

77% DD, 89% FF

也许你需要的只是。

<强>更新

这是您问题的精确解决方案。使用%(%25)和空格(%20)的百分比编码,您将得到您正在寻找的内容。

/[1-6][0-9]%25%20AB.*/