希望能优化两个关于搜索结果的问题

本贴最后更新于 222 天前,其中的信息可能已经时过境迁

一. 除了有匹配项的个数统计,还希望能有匹配次数的统计。

一个项中可能包含了多个重复的关键字。用户们可能有时会有想要查看自己的笔记中某个关键字出现了多少次的需求。比如作家就可能会比较在乎这个。

而且它可能会让用户理解错误,导致把两者划等号,因为很多笔记软件没有“块”的概念。

当一个表格中出现了多次某个关键字的时候,目前的搜索结果只能把它统计为一个项,可能会让用户误以为该表格只出现了一次关键字,除非用户会想到多次点击那个匹配结果的地方,那么就会一个个定位到对应的位置。

Snipaste20240514211937.png

Snipaste20240514214017.png

比如改进后的结果可以这样,仅供参考:

  1. “93 个文档中匹配 157 个块(关键字总共出现 163 次)”
  2. 然后在匹配块的最右边(或者最左边,或者其他更合适的位置)用特殊的样式(比如像文档树中“引用”次数统计的样式那样)标注该块中出现的关键字的次数。

二. 希望匹配项支持“标题排序”

目前只有按照“类型”、“创建时间”、“更新时间”和“相关度”排序。

缺少该功能带来的一个困扰场景(我已经试过“重建索引”):当我在日记中搜索关键词的时候,匹配的结果无法根据标题排序,导致整个顺序都是乱的,而且同一个文档也不一定就排列在一起,有的会分散开,不方便我根据日记日期回顾,非常麻烦。

Snipaste20240514211958.png

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23026 引用 • 92632 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    第一点研究了下,要统计关键字出现次数性能代价较高,因为需要匹配关键字出现次数而不仅仅是统计结果行数。目前提供的总块数已经能够给用户搜索结果概括了,所以就不考虑提供具体的匹配次数了。

    1 回复
  • 其他回帖
  • syjack 1
    作者

    好的,那么我还也有两个小问题:

    一. “XX 个文档中匹配 XXX 项”改为“XX 个文档中匹配 XXX 个块”之类的文案会不会更好?

    我注意到 Apple 备忘录的搜索匹配结果会用“项”这个词,但它的这个词是用于描述笔记的篇数的,用户其实也可以很快明白,因为搜索匹配界面显示的就是一篇篇笔记的样式。

    但不少的笔记软件都没有“块”的概念,刚入门的思源用户可能会认为匹配界面中显示的那些块就是一段段文本,从而把匹配项数等价于匹配次数。改文案之后,也会帮助刚入门的用户更快地明白“块”的存在。

    二. 希望有搜索界面的个别操作的使用指引或者专门的介绍章节

    下面两个操作都很有用。可以在用户指南中说明,或者直接在搜索界面中找地方说明。

    1.定位关键词位置

    我之前无意中发现在搜索结果中逐次点击那些块,就可以逐步定位关键词在块中的每一个位置。这个操作其实很有价值,比如当一个表格块特别长的时候,可以方便地定位关键词位置,更何况思源客户端没有像其他的笔记软件的单个笔记内的关键词定位的功能。

    2.双击匹配块或者在匹配块上回车从而在编辑面板新建对应的文档页签并定位到对应的位置

    我也是之前无意中才发现了可以这样操作 😂

    Snipaste20240516211103.png

    我在用户指南中找到了有关搜索界面的一些操作,但它们只是属于“快捷键”章节的。是否应该有一个专门的章节来介绍搜索界面的使用方式呢?

    2 回复
  • @88250 下面这些也补充到用户指南?

    image.png

    1 回复
  • 查看全部回帖

推荐标签 标签

  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 9 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 39 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 159 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖 • 1 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 3 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 666 关注
  • 音乐

    你听到信仰的声音了么?

    61 引用 • 511 回帖
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 632 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 603 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 612 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 3 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1706 回帖
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 6 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    34 引用 • 148 回帖
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1737 回帖 • 2 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 209 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    110 引用 • 54 回帖 • 1 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖 • 1 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 483 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖 • 1 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    62 引用 • 289 回帖