[已解决] 使用多个关键词进行全局模糊搜索的问题

本贴最后更新于 485 天前,其中的信息可能已经事过景迁

这是上次我发帖的那个问题,感觉没有说清楚,这次组织一下语言说的详细一些。

我拿 D 大写的「思源笔记用户指南」举个例子,假使我忘记了某篇笔记的名字,但是我记得某篇笔记里有写过「思源」、「笔记」、「编辑器」、「内容块」这些内容

image.png

于是我使用了模糊搜索「思源 笔记 编辑器 内容块」,但是结果显示「0 个文档中匹配 0 项」

image.png

在上个帖子中 D 大说可以用 OR 语法查询,但是用 OR 查询不仅不能精确定位,而且模糊记忆的词越多,出来的结果越杂乱。比如上面的 AND 查询,我改成 OR 查询一次「思源 OR 笔记 OR 编辑器 OR 内容块」,会发生什么呢?

image.png

搜索结果显示「38 个文档中匹配 193 项」,这还是我关闭了自己的笔记本,只留下了一个「思源笔记用户指南」笔记本的搜索。这样的搜索结果对于查找自己模糊记忆中的笔记是灾难性的。

所以我的想法是,全局搜索应该改成按照文档匹配而不是内容块匹配,否则 AND 语法的模糊搜索就完全失去了应有的作用。因为一个长篇的笔记文档,不可能只有一个内容块,在同一篇文档内跨块模糊搜索是一个基础操作

  • 思源笔记

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

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

    18534 引用 • 68921 回帖
1 操作
Reader 在 2022-12-18 21:37:36 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 可以了,通过老铁的热心帮助,问题得到了解决。

    AND 语法的模糊搜索使用 SQL 搜索可以解决,代码如下

    select * from blocks where 
    (id in (select root_id from blocks where content like "%替换内容%")) 
    and (id in (select root_id from blocks where content like "%替换内容%"))
    /*需要多个关键词可自行复制添加*/
    

    只是这种方法还是稍微要点技术,没有老铁的帮忙我压根就做不了这个搜索,希望 D 大在自带的搜索中也能够支持吧

    2 操作
    Reader 在 2022-12-18 21:41:09 更新了该回帖
    Reader 在 2022-12-18 21:39:27 更新了该回帖
  • 其他回帖
  • lzuwujx

    select * from blocks
    where (id in (select root_id from blocks where content like "% 思源 %")) and
    (id in (select root_id from blocks where content like "% 笔记 %")) and
    (id in (select root_id from blocks where content like "% 编辑器 %")) and
    (id in (select root_id from blocks where content like "% 内容块 %"))
    order by random()

    20221218212029065.png

  • SQL 可能是我不太熟悉,不知道我下面写的对不对。type = 'p'或者 type = 'd'都不行,搜不出匹配的文档。

    另外从这个提示上感觉 SQL 也是以内容块为单位进行搜索,如果是同一篇文档内的跨块模糊搜索可能也无能为力

    image.png

  • 现在搜索面板支持保存查询了, 可以试试将搜索方式设置为 SQL 后, 在搜索框中输入 SQL 语句并保存为查询

    1 回复
  • 查看全部回帖
Reader
纸上得来终觉浅,绝知此事要躬行

推荐标签 标签

  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 3 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    207 引用 • 2031 回帖
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 2 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    53 引用 • 85 回帖
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 159 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖
  • OpenResty

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

    17 引用 • 35 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    76 引用 • 421 回帖
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 1 关注
  • Quicker

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

    18 引用 • 72 回帖 • 1 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • 工具

    子曰:“工欲善其事,必先利其器。”

    273 引用 • 678 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 97 关注
  • Chrome

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

    60 引用 • 287 回帖 • 2 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 43 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 521 关注
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖 • 1 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 3 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 1 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    51 引用 • 226 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 53 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    25 引用 • 215 回帖 • 162 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    131 引用 • 3637 回帖 • 1 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 247 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    169 引用 • 799 回帖