用"意思"来搜,而不是用"字"
语义搜索(semantic search)按文本的内在含义来检索,而不是只靠关键词匹配。这一篇讲它背后的嵌入(embedding)原理, 以及怎样把搜索结果和本体对象连起来,让运营工作流更聪明。
https://www.palantir.com/docs/foundry/ontology/overview-semantic-search/
原始标题:Semantic search · Overview
一句话速览
用"意思"来搜,而不是用"字":语义搜索(semantic search)按文本的内在含义来检索,而不是只靠关键词匹配。这一篇讲它背后的嵌入(embedding)原理,以及怎样把搜索结果和本体对象连起来,让运营工…
这一篇在讲什么?
语义搜索:按含义检索,而非仅靠关键词或传统方法。
传统搜索靠"关键词匹配"——你输入什么字,系统就去找含这些字的文档。但用户的真实意图常常换了一种说法。 语义搜索(semantic search)要解决的正是这个问题:它根据文本的内在含义或上下文来检索, 而不只是依赖字面关键词。
这一篇是概览:先把"向量 / 嵌入"的直觉讲清楚,再告诉你怎么把搜索结果挂到本体对象上。 具体的搭建步骤(用官方模型、用自定义模型、做分块)留在本系列的后续几篇。
关键词搜索的局限
字面匹配会漏掉"同义但不同字"的相关内容。
假设一份知识库里写着"面部遮挡物使用指南",而用户搜的是"口罩"。关键词搜索只会找含"口罩"二字的文档,于是这篇指南被漏掉了——尽管它正是用户想要的。
语义搜索不是要取代关键词搜索,而是补上"按意思找"这一层——尤其适合海量非结构化文本(PDF、工单、报告)。
核心原理:嵌入模型把文本变成向量
embedding model 输出一串数字(向量),意思越近、向量越近。
语义搜索靠 AI 模型把文本转换成向量(vector)——也就是一串数字组成的数组,也叫"嵌入(embedding)"。 如果模型够好,那么在一个 N 维空间里,彼此靠近的向量,就代表含义相近的文本。
把嵌入文本关联到本体对象
检索到的"近邻向量"一旦对应到对象,工作流就能直接用了。
光有向量还不够。原文强调:如果嵌入后的文本关联到本体(Ontology)里的某个对象, 你的"搜索驱动型运营工作流"会变得非常有用。
因为"找和某条查询相关的实体",本质上就变成了"在 N 维空间里找最近的向量"。 于是:
两条搭建路径(概览)
用 Palantir 提供的模型,或用你自己的自定义模型。
原文把后续学习资料分成两条线,本系列后面也会专门讲:
| 路径 | 适合 | 本系列后续 |
|---|---|---|
| 用 Palantir 提供的模型 | 想快速起步、省去选模型与部署的麻烦 | semantic-search-palantir-models.html |
| 用自定义模型 | 已有自有嵌入模型、需要更可控 | semantic-search-custom-models.html |
练一练:该走哪条线?
动手演示:相似度排序
点一个查询,看结果按"向量距离 / 相似度"重新排序。
下面是一份知识库(8 篇)。点一个查询,右侧会按"与查询的相似度"从高到低排出结果, 并用横条显示相似度。越靠前 = 在向量空间里离查询越近 = 含义越相关。
说明:这是教学用简化模型——真实语义搜索由嵌入模型算出查询与每篇文档的向量,再用余弦相似度排序。这里用预设的近似分数,只为你直观感受"意思越近排越前"。
一页带走
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「用"意思"来搜,而不是用"字"」,读者最常问的几个问题。