【原创】全文搜索引擎技术原理入门

【原创】全文搜索引擎技术原理入门

作者:黑夜路人(heiyeluren / Black)

时间:2021/11

文档:《全文搜索引擎技术原理入门》- 黑夜路人


    

        信息检索(Information Retrieval)的含义可以是非常广泛的,作为一个学术研究领域,信息检索可能如此定义:信息检索(IR)是从集合(通常存储在计算机中)中找到满足信息需求的非结构化性质(通常是文本)的材料(通常是文档),信息检索是解决信息存储和检索的一门学科。

    信息检索(IR)是基于用于查询检索信息的任务,目前流行的信息检索模型包括 布尔模型、向量空间模型、概率模型和语言模型,信息检索最典型和最常见的应用是“搜索引擎”(Search Engine)。

    搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上采集信息(主动采集或被动接收信息),在对信息进行组织和处理后,为用户提供检索服务,将检索的相关信息展示给用户的系统。

    搜索引擎是工作于互联网上的一门检索技术,它指在提高人们获取搜集信息的速度,为人们提供更好的网络使用环境。从功能和原理上搜索引擎大致被分为全文搜索引擎、元搜索引擎、垂直搜索引擎和目录搜索引擎等四大类,目前一般通俗提到“搜索引擎”主要是指“全文搜索引擎”。 

    搜索引擎发展到今天,在日常工作生活中都已经离不开了,目前的搜索引擎技术在基础架构和算法在技术上都已经非常成熟,发展成为根据一定的策略(机器学习)、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后(构建高质量索引),为用户提供高质量的检索服务,将用户检索最相关或是用户最想要(通过机器学习/深度学习方式)的信息展示给用户的一套系统。

    本篇分享内容主要是介绍搜索引擎(全文搜索技术)的基本实现原理机制的一个入门,能够快速通过几十页的内容,对搜索引擎技术有一个概要的、系统性的了解,帮助我们在工作中无论是使用通用的全网搜索引擎(谷歌/百度等),还是使用站内全文搜索引擎(Lucene/ES/Solr/Sphinx等),都能够有一个对原理理念层面的了解,能够更快速的帮助我们更深入的做好技术研发。

    内容会描述搜索引擎的概要构成和主要的工作流程,从搜索引擎的 内容抓取(Spider)、分词(NLP)、索引构建(Index)、内容相关性(Document Rank)排序等几个方面进行介绍,希望能够提供系统性的学习和了解。

  • 内容抓取:爬虫程序的基本工作流程,主流爬虫介绍,爬虫Scrapy介绍

  • 内容分析:网页分析(HTML解析)、网页去重算法(Shinling/I-Match/SimHash等),中文分词技术(主要实现方法、包括基于字典-正向逆向最大匹配/最小切分/MMSeg、基于统计学、基于深度学习等方法-条件随机场CRF/隐形马尔科夫模型HMM/N-gram,主流开源哪些实现)

  • 索引系统:搜索索引系统的构建,包括正排索引、倒排索引等等(与传统数据库数据结构B+树/LSM树的区别),核心数据结构实现机制(Lucene中的实现过程)

  • 检索系统:搜索引擎检索(查询)过程(包括布尔查询、字段查询等),全文检索排序技术(布尔模型、向量空间、概率检索等相关性排序技术),包括主流的一些算法介绍 余弦相关性、BM25、TF-IDF等等。

  • 最后在推荐一部分包括ES/Lucene等在内的开源搜索引擎进行进一步学习

核心重点内容会在 分词技术(Segmention term)、倒排索引构建(Inverted index)、搜索结果相关性排序(Document rank)等几个重点全文搜索引擎技术上面进行介绍,希望您有所收获。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

希望您学习完本篇文章能够对全文搜索引擎技术有一定的了解,能有一些学习和收获,如果想加入技术群交流请扫码加微信一起交流。


该原创文档PDF下载:

《全文搜索引擎技术原理入门》黑夜路人

猜你喜欢

转载自blog.csdn.net/heiyeshuwu/article/details/121413946