V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ragnaroks
V2EX  ›  问与答

关于静态站做全文搜索

  •  
  •   ragnaroks · 2022-05-30 10:08:51 +08:00 · 1092 次点击
    这是一个创建于 942 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在个人网站用的是 hexo ,其全文搜索依赖于预先生成一份巨大的 search.xml

    我现在想乘着放假(端午加年假一起 18 天)使用 nextjs 完全重写一份高度客制化的个人网站,因为传统带搜索功能的静态网站生成器,都是偏向个人博客或者文档性质,我这里是想既是博客亦是文档甚至还能加上一些小工具

    但遇到一点问题,网站内容的全文搜索,通过特征搜索( nextjs 的 /_next/)发现大部分都不提供搜索功能,部分利用搜索引擎的 site:domain.tld 语法,效果不佳

    当前我是每个需要被搜索到的路由,都 export const fullText:string = Page.getChildText,虽然实现了搜索功能,但是回导致有一个巨大的搜索组件,目前放了 5 个页面总计 3000 字以下,就已经接近 10 KiB 了

    想看看火鸡们有没有更好的办法

    第 1 条附言  ·  2022-05-30 17:02:38 +08:00
    我晕了,添加了 50 个文件或页面,search.tsx 猛增至 370 KiB ,比我整个网站(除了媒体文件)都大了
    第 2 条附言  ·  2022-05-31 21:20:11 +08:00
    用后端的思想,我实现了一个简单的“前端数据库”,只不过这个数据库(在打包后)是只读的,问题算是解决了

    将 article 、artcile-meta 、tag 、page 都导出并打包成对应的 js ,前端 jsonp 实现按需载入
    4 条回复    2022-05-30 20:00:21 +08:00
    cyjme
        1
    cyjme  
       2022-05-30 11:06:33 +08:00
    可以考虑集成 Algolia DocSearch
    ragnaroks
        2
    ragnaroks  
    OP
       2022-05-30 11:39:19 +08:00
    @cyjme 考虑过,但目前不打算引入外部在线依赖
    marcosteam
        3
    marcosteam  
       2022-05-30 15:31:56 +08:00
    学 V2 啊,先把你的站点谷歌收录了,然后搜索的时候直接用谷歌在后面 site: 你的博客地址(
    nightwitch
        4
    nightwitch  
       2022-05-30 20:00:21 +08:00
    v2ex 的搜索都是直接跳转谷歌的。
    你可以观察下你的站必应收录的好还是谷歌收录的好,直接做个搜索框跳到外部搜索得了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2302 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:08 · PVG 00:08 · LAX 08:08 · JFK 11:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.