可能稍微标题党了点,我用的小米手机,不能代表所有安卓
之前用 ios 的时候,搜索交管 12123 发现如果直接输入 123 会搜不到,12 可以,交管也可以,用久了就习惯了,以为是写搜索的哥们程序逻辑有 bug 导致,因为我印象中这个搜索也没有用到分词,应该是纯模糊匹配吧?
最近换了小米, 升级了最新 hyperos,搜交管时直接输入 123,没有搜到,我以为没有安装,进商店一看是安了的
试了下搜 12 可以,搜交管 可以,搜管 1 可以,搜 2123 可以,搜 123...还是不行
所以我有点好奇这个跨平台 bug 是什么导致的,感觉不是匹配 bug,像是压根没走到匹配那一步? 123 被当成了数字进行了其他搜索了?
1
codehz 230 天前
一般全文搜索都是分词之后前缀匹配的吧,12123 不太可能被分成两个词
|
2
mirtle 229 天前 via Android
帮你试了下 oppo 和一加的三台手机。
没你说的问题,搜 123 可以找到 12306 ,12123 |
3
jifengg 229 天前
首先,楼主你说的是本地搜索应用吧?
k40 14.0.8 ,本地搜索“123”,能找到“铁路 12306”,找不到“交管 12123” 这个很迷,按 1 的时候有 12123 ,12 的时候也有,123 就没 |
5
shendaowu 229 天前
可能都用了 ElasticSeartch 之类的东西,所以问题跨平台了?搜索这个东西的实现对我来说是挺复杂的,我说的还是那种用库实现。我感觉里面有不少需要了解实现过程才能避开的使用方面的坑。
具体到 OP 的问题,我搜了一下,可能是 123 被设置成停用词了。我只是模糊地知道全文搜索引擎会忽略某些信息量不大的出现频率很高的词,但是忘了叫什么了,所以搜了一下。如果用 123 搜不到任何东西那应该就可以确定是停用词的问题了,如果用 123 能搜到其他东西那我就不确定了。后者我猜没准是对关键词有竞价排名之类的东西?如果翻到底也没有的话我就彻底想不到原因了。 另外 OP 为什么没说是在什么地方搜索的?是系统桌面上的那个搜索框?这是个很关键的信息,不同地方的搜索框很可能是有区别的。 我用小米桌面的搜索框搜 123 和 12 都无法搜索本机安装的“交管 12123”。我试了很多,发现好像是三位及以下的数字都不会搜索本地应用。因为 1212 、2123 能搜到,121 、212 搜不到。我又要瞎猜了,可能是为了节省搜索用的资源吧,毕竟这个搜索结果是根据输入实时展示的。很短的数字可能是会搜到很多东西的。 |