构建一个真正有效的简单搜索引擎 | blog | #教程 #搜索引擎

“我知道你在想什么。“为什么不直接使用Elasticsearch?”或者“那Algolia怎么样?”这些都是有效的选择,但它们也带来了复杂性。你需要学习它们的API,管理它们的基础设施,并处理它们的各种怪癖。
有时候,你只想要一个:
※与现有数据库兼容的
※不需要外部服务的
※易于理解和调试的
※能够真正找到相关结果的

这就是我所构建的。一个使用你现有数据库的搜索引擎,尊重你当前的架构,并且让你完全掌控它的工作方式。

核心理念
这个概念很简单:将一切进行标记化(tokenize),存储起来,然后在搜索时匹配标记。

它的工作原理如下:
※索引:当你添加或更新内容时,我们将其分解为标记(单词、前缀、n-grams),并带有权重地存储它们
※搜索:当有人进行搜索时,我们以相同的方式对他们的查询进行标记,找到匹配的标记,并对结果进行评分
※评分:我们使用存储的权重来计算相关性分数

其中的关键在于标记化和加权。让我给你演示一下我的意思。”
 
 
Back to Top