为什么开单模糊检索商品时,商品没有按照商品编码由小到大排序?

栏目:云星辰知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

为什么开单模糊检索商品时,商品没有按照商品编码由小到大排序?

1、 问题描述

为什么开单模糊检索商品时,商品没有按照商品编码由小到大排序?

回答:这个不是程序问题,而是根据目前商品检索的逻辑返回的结果。


下面我们先说明一下星辰商品模糊搜索的逻辑,再通过案例来理解这个逻辑的实现效果:


2、 场景介绍:

在食品酒水、五金建材、医疗器械等存在非常多名称、规格相似的商品时,开单模糊检索时非商品编码的时候,经常会遇到查询结果排序不是按商品编码升序排序的情况。


3、 逻辑说明及解决方案:

一、名词解释:

  • 前台就是网站前台,例如在PC端、移动端所能直接看到的页面。

  • 后台就是前台看不到的地方,可以查看、修改代码的地方,例如数据库。

  • 匹配度就是跟模糊搜索关键字完全相等。例如:搜索 “草莓”,那么在下拉列表中匹配度最高(也就是包含或者等于关键字“草莓”)的字段就是【商品名称】。

  • 字符长度:即字符串的长度,包括字母、数字、运算符号、标点符号等等。例如:牛奶(草莓味),字符长度是7位(括号也算是字符)。

  • 升序:即从小到大排序。


二、下拉列表检索逻辑说明

星辰开单模糊搜索时,下拉列表中前台查询后台查询返回的值的规则是不一样的:

  • 商品数量<2.5万时,下拉列表模糊搜索展示前台查询的结果,不是直接根据商品编码升序,有单独的逻辑

  • 商品数量2.5万下拉列表模糊搜索展示后台查询的结果例如商品资料列表的检索就是走的后台查询的逻辑(正常按商品编码升序排序)。


敲黑板,划重点!!!!:

只有当商品数量大于2w5时,下拉列表模糊检索时,才会跟商品资料列表的查询结果一致

之所以有2套的不同逻辑,是鉴于搜索的性能考虑,当商品少的时候,走前台查询逻辑速度会更快,而当商品非常多时,会走后台的到数据库查询,所以耗时会更久些。


本文主要重点说明,将当商品数量少于2w5时的检索逻辑。也就是最开始反馈的问题“为什么开单模糊检索商品时,商品没有按照商品编码排序?”


检索的优先级及返回规则:

  • 优先级1:按区分大小写字母检索,取匹配度最高字段长度升序排序,字符长度相同的情况下,按商品编码排序。

  • 优先级2:按不区分大小写字母检索,取匹配度最高字段长度升序排序,字符长度相同的情况下,按商品编码排序。

  • 最终返回结果:先按优先级1检索,直到检索完所有符合的结果后,再按优先2检索。最终显示在下拉列表的排序就是把优先级1+优先级2所有筛选结果,按照所匹配的字段长度由小到大排序


三、案例说明与应用:

下面通过销售订单开单的下拉列表进行说明,注意,下文案例都是商品没有超过2.5w的


假设有商品某饼干若干个口味,信息如下:


  • 场景一:【商品名称】匹配

销售开单时,搜索 “好吃的”时,显示结果如下

说明:因为录入的就是中文,不存在大小区分,那么直接取匹配度最高字段,那么就是“商品名称”,而商品名称中,根据字符串长度升序排序,长度相同的情况下,按商品编码升序排序


  • 场景二:【助记码】匹配

假如还是上面的商品信息,销售开单时,搜索 “chchbg时,显示结果如下:

说明:因为录入的是小写英文,那么取匹配度最高字段就是“助记码”,而助记码中,根据字符串长度升序排序,长度相同的情况下,按商品编码升序排序,刚好跟按商品名称搜索时一样的结果。


  • 场景三:商品编码匹配

1) 商品编码跟助记码大小写不一致

还是跟上面案例一样的商品,商品编码跟助记码大小写不一致时

销售开单搜索 “CHC”时,显示结果如下:

说明:因为录入的是大写英文,那么取匹配度最高字段就是“商品编码”,而且商品编码的长度都相同,故直接按商品编码升序了。


2) 商品编码跟助记码大小一致

如果商品编码跟助记码都是一样大写/大小英文的格式,

那么销售开单时,搜索 “chcd”时,显示结果如下:

说明:此场景中,商品编码跟助记码都是小写英文,那么在这种情况下,优先匹配商品编码,而且商品编码的长度都相同,故直接按商品编码升序了,看到的结果就跟商品资料列表是一样的结果了。


场景其他匹配场景

按规格型号、品牌等等字段的检索也是一样的逻辑,下面就不再一一列举了。


四、搜索建议

如果希望下拉列表显示按商品编码排序,建议:

1、尽量精确查询,直接按商品编码中的字母检索,保持相同的大写或小写格式

上文案例的商品“超好吃的饼干夹心草莓200g”,搜索时录入商品编码CHCD”.


2、如果开单时习惯使用助记码搜索,建议缩短助记码长度

如果用小写字母检索,由于【助记码】默认都是小写字母,所以会优先先匹配【助记码】,如果有大量的商品名称非常相似且名称很长那么【助记码】也非常长,这个会导致按【助记码】匹配时,排序很靠后,导致在下拉列表展示时,可能要往下滚动很久才能找到,建议缩短【助记码】的长度,保留关键信息检索即可,这样检索时,就会优先排在下拉列表的前面。


商品“超好吃的饼干夹心草莓200g”的助记码正常是chcdbg(jxcm)200g可以改成chcdjxcm


3、如果开单不使用助记码搜索建议商品编码助记码保持一样

如果开单不使用助记码搜索,希望无论大写还是小写都能按商品编码模糊检索,建议通过批量引入,把商品资料中的“助记码”都改成跟“商品编码”一样的信息,这样模糊检索结果就是直接跟商品列表显示的结果一样了。


上文案例的商品“超好吃的饼干夹心草莓200g”的助记码可以改成商品编码一样“chcd0001”。



为什么开单模糊检索商品时,商品没有按照商品编码由小到大排序?

1、 问题描述为什么开单模糊检索商品时,商品没有按照商品编码由小到大排序?回答:这个不是程序问题,而是根据目前商品检索的逻辑返回的...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息