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

确实,至少这一点我们达成了共识:ob在其他方面可能更需要提升,这个的优先级并不高,可以通过插件实现。

你提到的正则在ob自带的搜索就能实现,估计也不难,但可能很多人很排斥这样的做法。ob目前更人性化的插件偏少,相信以后会好很多吧。

事实上,在Google 上搜索“obsidian search problem”,就能找到在论坛上很多老外在1年前就提出了这个问题。。到现在也没解决。。你说插件就能解决,事实上目前并没有这样的插件(我用搜索引擎搜了好几次也没有)。

或许你能接受这样obsidian。

但是你觉得搜索功能对于一个笔记软件不是基本的、必须得功能。那我想问,你怎么在不知道一个关键词是否加粗的情况下去搜一个关键词呢?你不知道“弟弟”二字被加粗的情况下,怎么通过“我的弟弟”搜出来?

1 个赞

我打赌这个功能恐怕再过一年都不会实现。。因为我觉得这个不太好实,而且开发团队更喜欢出更多复杂功能,反而忽视这些细节。。(恐怕很多人都没注意到这个搜索功能的缺陷))

你非要和我杠,我都跟你说了通配符

你只需要在你不确定是否有语法符号的地方加上.*即可,如果你硬是搜这样的我==的弟弟==,你可以去全加上。

楼上也说了你也可以加空格,类似布尔运算搜索

image

我这可是手把手教你了,你就别杠了。你是一点都没有把我们在上面的讨论看进去,你兴许是不懂,但不懂还这样回复,我就只能理解你是纯杠了。

笔记数量多了就需要精确匹配,模糊搜索结果太多了
然而当前精确匹配确实有些困难,只能在前期就不要给后期搜索制造麻烦(不要用特殊格式,强调内容可以像论文那样在文章前写上关键词)

想吐槽一下,你目前提到的例子 “弟弟很好” 和 “ 栈是” 都是两个字或词语连接的,当搜不到的时候也仅仅是加个空格就好了,应该很少有这样的需求,一般情况下搜索都是以关键词为核心,多一点也就四五个关键词就能搜到了。而且 **栈**是 这个例子,我恰好就有这样的笔记习惯,像wiki一样对第一个词语加重,所以一般搜索就直接搜 **名字** 就能搜到了,自己的笔记应该都有一套自己的逻辑,很熟悉在哪里会用什么标记才对。

所以我觉得这个功能并非核心功能,可能会以插件形式出现。

你能搜到的前提是你知道“弟弟”这个加粗,这样你才知道在什么地方打上空格来进行搜索。否则你必须在每一个字之间都打上空格

所以你这个人又菜又爱犟(反正我是受不了),不去试试就来回复我。麻烦你去搜搜什么叫正则匹配,什么叫通配符,什么叫布尔运算:

image

image

词与词之间你说你不知道哪里有语法,字与字之间你都较劲,那有啥办法。

我至少还有三种方式来找到类似这样的结构,更何况我的笔记是有组织的,我极少使用搜索查找内容。都是通过quick switcher快速定位文件,调用大纲跳转。

  1. quick switcher定位文件,接着定位到标题
  2. another quick switcher,ripgrep全局模糊匹配
  3. 增强笔记一致性,术语都用==高亮记号
  4. 术语都用admonition定义,搜索术语只搜admonition的正则
  5. 还有很多

我也不回复了,爱咋咋地吧,累了

2 个赞

仅仅因为我指出了obsidian的不足你就这么气愤吗?calm down。你说的意思我完全明白,我知道什么是正则表达式,因为我本身就是java程序员。。。
虽然你可能不会回复我了。但是我还是仔细点,把话说清楚。

比如“我的弟弟很好”这句话中,你不记得哪几个字被加粗了。。那么这时你只有输入“我 的 弟 弟 很 好”或者“我.*的.*弟.*弟.*很.*好”,,才能确保搜出来,而且还会出现很多自己不想要的、无关的结果。

或许你认为只要自己管理好内容对于自己不是问题。这没有问题。。。。可是,大部分用户没那么多高级技巧,多数情况下仅仅使用简单搜索。

2 个赞

这个问题的确是个问题,正则表达式可以解决,但不是很好。

计算机科学里有句话叫,任何的问题都可以通过加一个层来解决。这个也可以加一个层。

把*=等符号去掉并记录下来,搜索的时候增加这部分的权重,

但这会带来另外一个问题,那就是,我只是想搜出包含“我的弟弟很好””这样的内容。但是输入“我 的 弟 弟 很 好”(或者使用正则表达式,用.*代替空格),这时会把“我的儿子的弟弟的姐姐很好”这样的文本也显示在搜索结果中。。也就是说会搜出很多不想要的、无关的结果,降低了查到想要信息的效率

你是假的程序员吧,/我的[=|*]{2}弟弟了解一下

的确如此,我之前也说了,功能和人性化上面,优先考虑功能即可。

嗨,我无意在这里表达自己的观点。不过我想他的意思是,这将使得用户需要记忆高亮的词语的存在与否与位置。这对于用户而言是不够友好的。

1 个赞

功能和人性化,并不应该是完全割裂的。仔细看一下,就会发现,即使是软件自带的功能,有很多也只是为了方便而已。比如说日记,这本来也可以很简单地手动实现,可是官方还是做了这个功能。

。。。。你这个正则表达式我知道。等号或星好重复两次。。但是不行,你没明白我的意思。希望你重新看下我刚说的。我具体解释一下: “我的弟弟很好”,当你不记得这句话里面有哪几个字加粗时,你是没法使用你写的这个正则表达式来搜出来的。你这个正则表达式搜出来的前提是你记得这句话里面“弟弟”两个字作了加粗或高亮,这时才能搜出来。比如如果文中是这样加粗的
我的弟弟很好”(前四个字加粗),按你这个正则表达式就搜不出来。。你不可能在搜索之前每次都还能知道具体是哪个字加了粗。

我喜欢你的头像和与人讨论时温柔平和的语气:grin:

歪个楼,建议反馈不就是给部分用户认为某功能需要改善或者添加才提出来的地方吗?非官方用户可以互帮互助提供平替方式或者改善建议。分析这个功能有没有必要有啥意义吗?认为不重要不就直接划走完事。

markdown的确给obsidian添加了很多限制, 暂时没什么好办法, 类似的问题还有很多, 比如列表内换行对不齐, 做不到行引用以及任何字段引用等等. 英文论坛里有很多相关的讨论贴, 大家说来说去发现是真不知道该怎么实现. 至于某些人的言论, 无视即可, 我也经历过, 跟你指指点点好像你提了个蠢问题解决办法唾手可得, 但最后发现其实他根本就没招, 纯是相互浪费时间.

3 个赞

我为了寻求“更好的展示搜索结果”,找到了这个帖子

然后,看完内容后,特意注册一个账号,就想说一句:

我尝试用 Obsidian 只是为了记笔记,和方便的管理使用笔记,不是为了学正则表达式。

2 个赞