如何通过单个SOLR通配符前缀查询获取全部三类街道数据结果?
单正则匹配全部目标街道地址?
测试数据
2 QUEEN STREET 2 QUENTIN STREET UNIT 1 2 QUEEN STREET
现有查询情况
- 使用正则
street_name:/2[A-Z]* QUE[A-Z]*.*/可匹配:2 QUEEN STREET 2 QUENTIN STREET - 使用正则
street_name:/[0-9A-Z] 2[A-Z]* QUE[A-Z]*.*/可匹配:UNIT 1 2 QUEEN STREET
需求
能否用单个正则表达式一次性匹配全部三条数据?
解决方案
可以,通过添加可选前缀分组来合并两个正则的匹配逻辑,最终正则如下:
street_name:/(?:[0-9A-Z]+ )?2[A-Z]* QUE[A-Z].*/
正则解析
(?:[0-9A-Z]+ )?:非捕获可选分组,?允许该前缀出现0次或1次,用来匹配类似UNIT 1这类前置内容2[A-Z]* QUE[A-Z].*:保留原有的核心匹配规则,确保命中以2起始、街道名以QUE开头的地址
验证结果
该正则可同时匹配全部三条目标数据:
2 QUEEN STREET 2 QUENTIN STREET UNIT 1 2 QUEEN STREET
内容的提问来源于stack exchange,提问作者user2260040
相关产品推荐
相关产品推荐

