有个人长的像洋葱,走着走着就哭了…….

如何处理文本中带有数字连号的范围段搜索?

默认分类 | 作者 prostickman | 发布于2022年12月18日 | 阅读数:1864

现有场景是发票号连号查询,原文本通过 —— 等符号代表连续范围内的数字,需要在范围内的数字作查询条件时,能命中结果。

举例:
文本: 发票号 12300 - 12350
查询条件: 12345
结果命中: <em>12300 - 12350</em>

有几个想法不知道哪个更正确
1. 使用 Character/Token Filter/:
通过正则匹配到字符串,replace成多个数字值,即上面例子会替换成50个数值

2.数据建模解决:
设计发票号开始/结束字段,在put document之前,先用正则匹配到字符串再提交

请教还有没有更合适的方案或者现成的插件源码?
已邀请:

God_lockin

赞同来自:

可以考虑:
1. 在塞query的时候把 12300 - 12350 通过正则拆成 > 12300 && < 12350,然后用range query来处理
2. 在入库的时候就多存一个range字段,比如num: 12345, range: 12300-12350,然后搜的时候也用同样的值进行召回
 

要回复问题请先登录注册