一个同时存在于安卓和 ios 的跨平台----bug?

26 天前
 rekulas

可能稍微标题党了点,我用的小米手机,不能代表所有安卓

之前用 ios 的时候,搜索交管 12123 发现如果直接输入 123 会搜不到,12 可以,交管也可以,用久了就习惯了,以为是写搜索的哥们程序逻辑有 bug 导致,因为我印象中这个搜索也没有用到分词,应该是纯模糊匹配吧?

最近换了小米, 升级了最新 hyperos,搜交管时直接输入 123,没有搜到,我以为没有安装,进商店一看是安了的

试了下搜 12 可以,搜交管 可以,搜管 1 可以,搜 2123 可以,搜 123...还是不行

所以我有点好奇这个跨平台 bug 是什么导致的,感觉不是匹配 bug,像是压根没走到匹配那一步? 123 被当成了数字进行了其他搜索了?

436 次点击
所在节点    分享发现
6 条回复
codehz
26 天前
一般全文搜索都是分词之后前缀匹配的吧,12123 不太可能被分成两个词
mirtle
26 天前
帮你试了下 oppo 和一加的三台手机。

没你说的问题,搜 123 可以找到 12306 ,12123
jifengg
26 天前
首先,楼主你说的是本地搜索应用吧?
k40 14.0.8 ,本地搜索“123”,能找到“铁路 12306”,找不到“交管 12123”

这个很迷,按 1 的时候有 12123 ,12 的时候也有,123 就没
rekulas
26 天前
@mirtle 不同厂商系统实现不一样,不清楚原生安卓是否有这问题

@jifengg 是的 搜索本地应用的时候存在这问题
shendaowu
26 天前
可能都用了 ElasticSeartch 之类的东西,所以问题跨平台了?搜索这个东西的实现对我来说是挺复杂的,我说的还是那种用库实现。我感觉里面有不少需要了解实现过程才能避开的使用方面的坑。

具体到 OP 的问题,我搜了一下,可能是 123 被设置成停用词了。我只是模糊地知道全文搜索引擎会忽略某些信息量不大的出现频率很高的词,但是忘了叫什么了,所以搜了一下。如果用 123 搜不到任何东西那应该就可以确定是停用词的问题了,如果用 123 能搜到其他东西那我就不确定了。后者我猜没准是对关键词有竞价排名之类的东西?如果翻到底也没有的话我就彻底想不到原因了。

另外 OP 为什么没说是在什么地方搜索的?是系统桌面上的那个搜索框?这是个很关键的信息,不同地方的搜索框很可能是有区别的。

我用小米桌面的搜索框搜 123 和 12 都无法搜索本机安装的“交管 12123”。我试了很多,发现好像是三位及以下的数字都不会搜索本地应用。因为 1212 、2123 能搜到,121 、212 搜不到。我又要瞎猜了,可能是为了节省搜索用的资源吧,毕竟这个搜索结果是根据输入实时展示的。很短的数字可能是会搜到很多东西的。
rekulas
26 天前
@shendaowu 就是系统自带的桌面搜索,我的是下滑就出搜索框,有些是首屏左侧,还有些是首屏直接有个输入框,ios 是桌面右侧可以搜

跟 es 应该没什么关系,本地应用搜索用不到那个

跟位数也没啥关系,测试 1 和 2 都能搜到,21 123 反而不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1038222

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX