业务背景

现在时代,一个全文检索的需求其实非常常见。

针对博客文章的查询,针对商品信息等检索,针对网页的检索。

这些如果采用传统的 like 模糊查询实现,在数据量特别大的时候,是行不通的。

本引擎简化实现 lucene,实现一个简单易用的全文检索引擎。

核心理念

最核心的功能:

添加字段信息,对应的文本,可以执行分词存储。

根据关键词,可以检索对应的信息。

对应 lucene 中的:

1)索引的创建

2)索引的检索

拓展能力

可以进一步引入 NLP 的其他能力:

pinyin 繁简体 拼写纠正

相似字 近义词 停顿词 否定词

权重

TI-TDF 算法

整体思路

用户输入一个文本,针对这个词进行分词,然后存储。

通过倒排索引的方式,进行存储。

存储的时候,根据输入的条件,分词匹配,通过 TI-TDF 算法计算相似度得分,返回对应的相似结果列表。

程序的命名

简单点:就叫 fulltext-search

lucene/solr/spark 这些优秀的名字,非常好听,但是不够直接。

参考资料