V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rekulas
V2EX  ›  分享发现

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

  •  
  •   rekulas · 13 天前 · 399 次点击

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

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

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

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

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

    6 条回复
    codehz
        1
    codehz  
       13 天前
    一般全文搜索都是分词之后前缀匹配的吧,12123 不太可能被分成两个词
    mirtle
        2
    mirtle  
       12 天前 via Android
    帮你试了下 oppo 和一加的三台手机。

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

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

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

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

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

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

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

    跟位数也没啥关系,测试 1 和 2 都能搜到,21 123 反而不行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 101ms · UTC 22:10 · PVG 06:10 · LAX 15:10 · JFK 18:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.