freemoon
V2EX  ›  问与答

请教关于多表结合的全文搜索

  •  
  •   freemoon · Nov 30, 2024 via iPhone · 2146 views
    This topic created in 557 days ago, the information mentioned may be changed or developed.

    我有三张关联的表,好比学校,学生,老师( 12 ,13 关联)三张表,然后现在我有一个全文搜索需求,这个搜索词可以是学校名称,学生名称,老师名称,我想请教一下怎么来实现这个三张表里面的全文搜索,然后按照匹配度排序结果,返回的结果都是学校,但包含匹配的学生和老师。

    这个和搜索引擎的那个形式有点类似,后端是怎么实现的呢?请教各位~~~

    Supplement 1  ·  Nov 30, 2024
    • 没有立即考虑使用es是原因是不太熟悉,而且es栈确实复杂、资源占用高;
    • 而clickhouse的全文搜索索引怎么还是实验性的feature
    8 replies    2024-11-30 17:17:22 +08:00
    typedefine
        1
    typedefine  
       Nov 30, 2024
    三个表需要全文检索的字段同步到一个 ES index 里就可以了吧
    miaotaizi
        2
    miaotaizi  
       Nov 30, 2024
    join 搜不行吗
    freemoon
        3
    freemoon  
    OP
       Nov 30, 2024 via iPhone
    @typedefine 好像是这么回事
    freemoon
        4
    freemoon  
    OP
       Nov 30, 2024 via iPhone
    @miaotaizi MySQL 性能差点
    freemoon
        5
    freemoon  
    OP
       Nov 30, 2024
    @typedefine 很久没用过 es 了,以同样的道理,我把数据合并到 clickhouse 里面的单张表做全文搜索,应该也可以。
    miaotaizi
        6
    miaotaizi  
       Nov 30, 2024
    @lasuar #4 先做出来再看性能吧, 学校, 学生, 老师 这种场景能有多少记录, 当你能把全省的信息都覆盖的时候, 那转 es 也就是分分钟的事了
    freemoon
        7
    freemoon  
    OP
       Nov 30, 2024
    @miaotaizi 可以的,先 mysql 的 JOIN+全文搜索看看效果
    Akkuman
        8
    Akkuman  
       Nov 30, 2024 via Android
    既然你使用 MySQL ,变动最小的方案就是 Mroonga 了,支持 CJK 的全文索引
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   883 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:54 · PVG 04:54 · LAX 13:54 · JFK 16:54
    ♥ Do have faith in what you're doing.