跳到主要内容
术语表

语义搜索

定义

语义搜索按意思的相似度、而不是按共有的词对结果排序,通常的做法是把查询和文档都转换成 embedding——一串数字向量——再返回向量离查询最近的段落。

又称
向量搜索、embedding 搜索
擅长
同一个意思,不同的说法
不擅长
精确的术语、人名、数字

它擅长什么​

关键词搜索需要字眼。如果你的笔记写的是「雨水调蓄」,而你搜的是「城市怎么应对暴雨」,关键词搜索什么都找不到。语义搜索能找到,因为它比较的是段落在讲什么,而不是包含哪些字。它还能跨语言:用中文问的问题,可以找出用德文写的段落。

这是实实在在的优势,也是为什么语义搜索成了大多数根据文档作答的 AI 工具默认的检索步骤。

在你自己的文件里,它会漏掉什么​

公开网页搜索和个人文件是两个不同的问题。在你自己的材料里,你通常记得的是某个具体的东西——一个术语、一个人名、一个数字、一句话——而这恰恰是相似度最弱的地方:

  • 精确的字符串会被模糊。 「第 4.2 条(b)款」、一个法条编号、一个药名、一个变量——embedding 会把它们放在看起来相似的东西旁边,而不是一模一样的东西旁边。含有那个确切条款的段落,可能排在三段只是泛泛讨论这个话题的段落之后。
  • 漏掉时毫无声息。 结果按接近程度排好返回,看不出刚好落在截止线下面的是什么。和 RAG 一样,一份好的结果清单和一份不完整的,看起来没有区别。
  • 它需要索引。 每份文档都得先 embedding 才能被找到,改了还得重新 embedding——一个构建步骤,一段等待,外加一样要保持更新的东西。
  • 计数不是它的活。 「这个术语出现过的每一处」是一个关于字眼的问题,相似度排序回答不了。
语义搜索向量索引里的 embedding擅长
  • 换了说法的同一个意思
  • 用另一种语言问的问题
会漏掉
  • 精确字符串——条款编号、人名、变量名
  • 它排掉了什么,毫无提示
  • 还没建索引的一切
关键词搜索按共有的词排序擅长
  • 精确的术语、人名和数字
  • 每一处出现,都数得出来
会漏掉
  • 换了说法的同一个意思
  • 用另一种语言问的问题
在 MindMax 里先按段落和你的问题共有的词排序;然后,在你要求时——或者问题找不到明显匹配时自动——由 AI 按意思重挑候选。每个结果都在原句处打开。代价是:重挑只能看到字面搜出来的那些。

两种做法各有盲区。哪个要紧,取决于你记得的是意思,还是字眼。

MindMax 怎样处理​

不在中间放一个向量索引。搜索背后没有向量数据库。它像你一样找资料——看文档结构、看页面上的原词、换几种说法再找——所以每个回答都能追到一段你打得开的原文。代价是:问法和文件里的措辞差得很远,或者换一种语言来问时,可能会漏掉。

在搜索面板里,一次搜索并排返回两份清单:「逐字匹配」,在整个文件夹里计数;「相关内容」,按段落覆盖了你查询中多少词来排序——不要求原句,也不要求词序一致。想按意思判断时,点「让 AI 重挑」:它读一遍候选,留下符合你意思的那些;一个问题找不到明显匹配时,它也会自动这样做。因为它是在字面搜出来的候选里挑,所以一段和你的问题一个字都不共享的文字,仍然可能被漏掉。每个结果都在它找到的那句话处打开。

相关内容和逐字匹配在同一个面板里,各自按文件计数——让 AI 重挑只需点一下。

常见问题

语义搜索和关键词搜索有什么区别?

关键词搜索匹配你输入的字眼;语义搜索匹配意思,通常靠比较 embedding。关键词搜索更适合精确的术语、人名和数字,还能数出每一处出现;语义搜索更适合你记得意思、却记不得原话的时候。

要按意思搜索我的文档,一定需要向量数据库吗?

不一定。MindMax 没有向量数据库:它按段落和你的查询共有的词排序,再让 AI 按意思重挑候选。代价是:措辞和你的文件差别很大,或者换了一种语言的问题,可能会漏。

语义搜索更准吗?

它在换说法上更强,在精确字符串上更弱,而且两者都不会告诉你它排掉了什么。对你自己的文件来说,你常常记得某个具体的术语,所以旁边同时有逐字匹配,通常才是一次搜索值得信任的原因。