ruandao
V2EX  ›  问与答

今天面试被问了个算法,不会,请教下

  •  
  •   ruandao · May 8, 2020 · 2705 views
    This topic created in 2219 days ago, the information mentioned may be changed or developed.

    大致题目是,譬如书名是 数据结构预算法

    然后搜索的时候,输入 "数 算"

    要怎么设计,去匹配搜索

    8 replies    2020-05-08 09:00:10 +08:00
    hehheh
        1
    hehheh  
       May 8, 2020
    trie 吧
    binux
        2
    binux  
       May 8, 2020
    搜索什么?

    从一堆书里面搜到这本?
    从字符串中搜索"数 算"的位置?
    判断字符串是否符合包含"数 算"子串?
    lihongming
        3
    lihongming  
       May 8, 2020 via iPhone
    @hehheh 字很多、数据集很大的话,会不会很慢?

    个人觉得用桶可能更直接一些,每个字一个桶,把这两个桶取出来求交集
    shikimoon
        4
    shikimoon  
       May 8, 2020
    这种属于搜索查询中的模糊匹配场景,可以用分词+倒排索引,然后做字符串匹配。简单的用编辑距离也行
    hehheh
        5
    hehheh  
       May 8, 2020
    @lihongming 对,这样应该会比 trie 快很多。
    ruandao
        6
    ruandao  
    OP
       May 8, 2020
    @binux 一堆书名中搜索匹配的书名
    sadfQED2
        7
    sadfQED2  
       May 8, 2020 via Android
    倒排索引可以解决,分词的时候根据他的要求分词,比如他这个要单个字搜那就单个字分词。你可以看看 es 的搜索原理
    HuHui
        8
    HuHui  
       May 8, 2020 via Android
    基本就冲着 es 去了吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4183 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 00:57 · PVG 08:57 · LAX 17:57 · JFK 20:57
    ♥ Do have faith in what you're doing.