我正在开发一组查询,以便从自由文本输入中查找规范的产品说明。请考虑以下示例来说明我的问题:
(* Where: (a) Free text (b) Should have returned (c) What was found)
- (a) 'CUTTER FLOOR90 CM DUPLEX - IRWIN'
- (b) 'CUTTER F/FLOOR/AZULEJ.90CM DUPLEX 0096'
- (c) 'CUTTER FLOOR65 CM DUPLEX - IRWIN'
- (a) 'WELDABLE GLOVE 50MM - TIGER'
- (b) 'LUVA . WELD BROWN 826 TIGER(50MM)'
- (c) 'WELDABLE GLOVE 40MM - TIGER'
- (a) 'INSULATION TAPE 33+ SCOTCH 19X10M - 3M'
- (b) 'INSUL. TAPE.PVC PT 19MMX10M N.33+ H00018'
- (c) 'INSULATION TAPE HIGHLAND 19X05M - 3M'
- (a) 'KEY COMBINATION 14MM - GEDORE'
- (b) 'KEY COMB. 14MM CV. 002509 002509 1'
- (c) 'KEY COMBINATION 10MM - GEDORE'
正如您所看到的,查询返回的字符串作为一个整体更紧密地匹配。我需要提高子串的重要性,如(\ d +)MM或(\ d +)CM。
你会怎么做,最好是Solr?
答案 0 :(得分:0)
您可能需要根据您面临的两种情况发出不同的查询。
为了帮助您处理查询不包含正则表达式的情况1和3,您可以在文档中保留一个额外的字段,例如名为popularity
。使用正则表达式的文档保持更高。然后按照Solr relevancy page所说的那样。
对于案例2和4,查询本身包含正则表达式,您可以为匹配项发出额外提升的查询。