0

我正在使用 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 运算符。例如:以下结果也会出现

77% DD, 89% FF

有人用 Solr 4.0 及更高版本尝试过正则表达式吗?

4

1 回答 1

0

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

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

我知道这比您要寻找的匹配更松散,因为它将匹配第三个位置的任何字符,但是 Solr REST API 不喜欢正则表达式中的 % 。(我不确定 SolrJ 或其他客户端库是否可以处理。)话虽如此,这种模式绝对应该排除

77% DD, 89% FF

也许你需要的一切。

更新

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

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

于 2013-02-09T23:55:00.980 回答