现有场景是发票号连号查询,原文本通过 —— 等符号代表连续范围内的数字,需要在范围内的数字作查询条件时,能命中结果。
举例:
文本: 发票号 12300 - 12350
查询条件: 12345
结果命中: <em>12300 - 12350</em>
有几个想法不知道哪个更正确
1. 使用 Character/Token Filter/:
通过正则匹配到字符串,replace成多个数字值,即上面例子会替换成50个数值
2.数据建模解决:
设计发票号开始/结束字段,在put document之前,先用正则匹配到字符串再提交
请教还有没有更合适的方案或者现成的插件源码?
举例:
文本: 发票号 12300 - 12350
查询条件: 12345
结果命中: <em>12300 - 12350</em>
有几个想法不知道哪个更正确
1. 使用 Character/Token Filter/:
通过正则匹配到字符串,replace成多个数字值,即上面例子会替换成50个数值
2.数据建模解决:
设计发票号开始/结束字段,在put document之前,先用正则匹配到字符串再提交
请教还有没有更合适的方案或者现成的插件源码?
1 个回复
God_lockin
赞同来自:
1. 在塞query的时候把 12300 - 12350 通过正则拆成 > 12300 && < 12350,然后用range query来处理
2. 在入库的时候就多存一个range字段,比如num: 12345, range: 12300-12350,然后搜的时候也用同样的值进行召回