obsidian全局搜索的一个巨大问题

我也说句不客气的话,想要高级的功能就一定需要高级的工具,要么你花钱买各种专门的搜索软件,要么你就学正则表达式。

我也说句不客气的话,想要高级的功能就一定需要高级的工具,要么你花钱买各种专门的搜索软件,要么你就学正则表达式。

我反反复复读了好几遍,试图理解其中的逻辑,但实在是理解不了。
我看来看去,这不自己都说了有2个解决方案:
方案1-学习正则表达式
or
方案2-使用搜索软件/高级工具(我暂且理解为第三方插件,因为我不知道还有通过第三方软件来搜索 Obsidian 内容的可行性。)


不会/不愿/不满方案1的用户不就是在找这个方案2吗?
同时也没强迫使用方案1的用户要使用方案2啊? :man_shrugging:

你把内部链接、标签、front- matter 玩明白就足够了,甚至都不需要任何插件和高级搜索功能。

你还是在记笔记管理笔记之外追求了更多的高级功能。

你觉得高级搜索的软件就不需要学习了吗?他们实现的原理也不过是正则表达式罢了,有些复杂到甚至于在使用之前你不得不理解它们每个选项到底是什么效果。当然也有极少数使用 AI 搜索的。

楼上各位都已经给出了正则的方案了。

这个帖子的问题在于楼主记笔记的时候故意引入了排版信息导致问题复杂化,你有没有想过如果不这么做呢?Markdown 的精髓就在于它是 Mark(排版)Down(简化),你或许根本就不需要创造新问题然后寻找解决方案。

在 OneNote 里追求简洁,在 Markdown/Obsidian 里追求复杂,不过都是给自己徒增烦恼罢了。

2 个赞

别人提供了解决该问题的不同方法和思路,怎么到你就浓缩成 为了学正则。

如果Markdown的精髓就是排版简化,为什么它要提供引入排版信息的方式呢?是否复杂是谁给出的标准呢?双向链接就是不复杂,而仅仅加粗文字就称之为复杂吗?

高级搜索的软件当然需要学习,然而这一定比正则表达式简单。否则也只能说明其软件本身的失败而已。

1 个赞

这是因为你口中的这个别人并不是真地只提供了解决该问题的不同方法和思路,还带有着许多自己的价值取向。而John_Doe则真地只是想要一种不同的方法和思路,却只得到一些没有帮助的回复。

1 个赞

我个人选择尽量弃之糟粕取之精华吧,毕竟论坛不是那么严谨发言的地方 :grinning:

1 个赞

祝愿你今天有好心情:grinning:

1 个赞

Markdown 的精髓是排版简化,更准确的说是尽量让内容与排版分离,但是注意:warning: Obsidian 的 Markdown 不是原汁原味的 Markdown。

你当然可以追求在 Obsidian 里插入复杂的排版信息,事实上现在就有很多人这么干,包括但不限于使用富文本编辑器插件、HTML mark等,但是这样做造成的负面效应(如本帖所展示的问题)需要自己克服。

复杂不复杂不需要标准,楼主遇到了问题没办法自己快速解决,你觉得这算不算复杂?

双链从本质上是原子化的,是单一的文件,和本帖所描述的文本搜索不是一个方向的问题。

你说的对,不是所有人都适合学习正则表达式,但楼主是个 Java 程序员……

其实说白了还真是学正则和放弃记笔记的“坏”习惯的问题。那句话怎么说来着,要么解决问题,要么解决问题的根源 :wink:

更准确的的说,不是放弃“坏”习惯,而是在追求高级文本搜索的目标的同时,放弃不利于高级文本搜索的排版习惯。

自己给自己找别扭的话,那就没人能帮的了自己了。

2 个赞

抱歉,我想首先提出一个问题。Markdown的精髓是排版简化,这个信息的来源是什么呢?我在wikipedia上似乎没有看到。当然,我知道,有些人认为wikipedia上的信息价值并不高,所以我不免羞耻地提问道。

楼主的确是程序员,然而后续提问的用户并不是。那么对于非程序员,又是如何呢?

Obsidian并不是仅仅开发给程序员使用的,所以我认为纠结具体提出问题的用户是否是程序员并无意义。事实上,我个人并没有如此功能的需求。然而经过思考,我觉得这样的问题的确是存在的。上面有人提到说自己不怎么需要全文搜索,所以这样的功能不重要,基于同样的理由,我觉得这样的观点是有失偏颇的。

你的意思貌似是说,做了在软件本该负责之外的事情就要承担对应的代价。开发者没有责任进行对应的优化。我有理解错误吗?如果没有的话,我想要说,然而,Obsidian首先是第二大脑,是知识库,并不一定要是笔记管理工具。更好地展示内容,是不是它的工作之一呢?我认为是的。既然提供了排版语法,只要使用了就会破坏全局搜索的可见可得性,这是否存在着问题?如果有人认为大多数人都不怎么用全局搜索,然而事实是全局搜索是已经存在的功能,这恰好说明了小众需求也可以被满足。如果说是加入对于搜索的改变会对开发造成负担,然而实际上通过简单的正则表达式就可以实现,并不复杂。

我并不是说任何的要求都是合理的,不过我认为对于像楼主这样提出这种问题的用户,我们应该给出的最好的回应是,“你好,Obsidian目前并不鼓励对于将小粒度的内容进行高亮进行全局搜索的兼容,你可以等待相关的插件支持,或者尝试其他的富文本编辑软件。”

1 个赞

夜已经很深了,我在回复的时候,弹出提示说,我在本贴回复太多了,是否应该考虑给其他人一些发言的机会,这让我不禁感到很悲伤。我后续不会再在此贴发言了,也祝愿你在新的一天醒来后有好心情:grinning:

其实想做到全局搜索并不是那么容易。

首先得把句子分成词,英文根据空格就行,中文的当然也有。但以后的分词并不知道md中的加粗,高亮等,需要在分词的上面加一层权重处理。

有了分词,存储在哪里也是个问题,让用户安装个elasticsearch不现实,也有线上的全局搜索引擎,好像需要付费。

正则表达式并不能解决问题,他顶多是在一定程度上解决搜索的问题,如果我想排序呢?

举个例子,搜索弟弟很好,那弟弟做的饭很好算不算呢,正则表达式会说不算,全局搜索会说算。

1 个赞

很中肯,不过我再稍微歪个楼,我个人觉得最后一句回应(“你好,xxx”)可能只有官方人员才能说得出来,普通用户在论坛里还是应该多多提供(有用or不一定有用)的解决方法和思路。

这是我个人的理解和表述。绝大部分人的共识应该是“内容与排版分离”或类似的描述。

以下是 Markdown 发明人 John Gruber 博客中的文章:

商业口号听听就得了,第二大脑强不强还得看第一大脑好不好使,不在于用的什么工具。

当然是问题,但你不能指望 Obsidian 官方为了你一个小众需求加速软件的开发,除非你注资当股东,或者学正则、学写插件自己解决问题。写到这里我无端想到一句软件工程中的名言:No silver bullet。

是的,你的表述非常文雅,我听了也很舒心,但我是个粗人没有这个水平,我也不是官方的人,不需要照顾别人的情绪,我只会说扎心的话。

我在很早之前的回复中就提出别的思路了:

我也不想再在这个帖子多说话了,我没给 Obsidian 一分钱,也没从 Obsidian 身上赚过一分钱,不想为了别人的事情操心了。

改变别人的想法是世界上最难的事情,甚至没有之一,各自安好吧。

1 个赞

我觉得楼主说的方法实际上是可行的,因为我发现切换成阅读模式之后,Ctrl+F搜索当前文档,就是忽略排版的,但是Ctrl+P的全局搜索没有实现这一点。所以其实在技术上是没有限制的,不知道官方不这样做的考量是什么

我覺得是因為如果要全局搜索就要存全部文檔
1.需佔用額外空間
2.另一方面因為之前無此功能下次版本更新之後第一次打開可能就要等很久,因為要把先前的全部文檔一次性都加入數據庫內

看了讨论过程,我觉得这就是纯文本的缺陷,作者风格一直都是追求简洁。可以加,不但可以,而且实现也并不困难,但没必要。搜索功能如果不能精确搜索而搜出一堆东西,也就失去了搜索的必要了。大佬们的笔记都是成千上万的,搜出几百条,意义不大。

我个人的习惯,不代表其他人,尽量少使用这种语法。谢谢楼主,提出这个问题,以后搜索会注意

这并不是markdown的问题,也不是帖主的使用不当。(给单词加<mark>是很正常的用法)单纯是obsidian的搜索机制缺陷而已。

任何网页搜索都不可能把标签包含在搜索里。。。只能说Ob设计时欠考虑了。