我正在使用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及更高版本的正则表达式?
答案 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.*/