全文检索技术--理论篇

简介: 全文检索技术什么是全文检索技术?数据分类,一共分为两种:结构化数据和非结构化数据通俗上讲,做开发的同学应该对结构化的数据已经非常的了解。
img_80bab52b63fd80bf8b02a130cb6a0180.png
全文检索技术

什么是全文检索技术?

数据分类,一共分为两种:结构化数据非结构化数据
通俗上讲,做开发的同学应该对结构化的数据已经非常的了解。比如说我们的一些关系型数据库中的数据(Oracle PG MySql..)也就是指固定格式或者是有限长度的数据。
非结构化数据,其实我们也是很常见,比如说 *.txt *.docx Email 之类的,这些数据通常是不定长或者是没有固定的格式。
当然也会有小伙伴会说,还有第三种数据格式,*.xml *.html 这些也是我们的同学再开发中比较常见的几种文件类型。暂且可以称为半结构化数据。

结构化数据的搜索方式

常见的结构化数据也就是数据库中的数据。在数据库中搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果。
为什么数据库搜索很容易?
因为数据库中的数据存储是有规律的,有行有列而且数据格式、数据长度都是固定的。

非结构化数据的查询方法

1.顺序扫描法(Serial Scanning)

所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。如利用windows的搜索也可以搜索文件内容,只是相当的慢。

2.全文检索(Full-text Search)

将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引。
例如:字典。字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结构化的,如果字典没有音节表和部首检字表,在茫茫辞海中找一个字只能顺序扫描。然而字的某些信息可以提取出来进行结构化处理,比如读音,就比较结构化,分声母和韵母,分别只有几种可以一一列举,于是将读音拿出来按一定的顺序排列,每一项读音都指向此字的详细解释的页数。我们搜索时按结构化的拼音搜到读音,然后按其指向的页数,便可找到我们的非结构化数据——也即对字的解释。
这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。

虽然创建索引的过程也是非常耗时的,但是索引一旦创建就可以多次使用,全文检索主要处理的是查询,所以耗时间创建索引是值得的。

全文检索过程图解
img_07c7f1d66ed2c34d482322763960e09e.png
全文检索过程图解

通过上图的流程,我们可以看出全文检索技术分为两个流程
索引流程:采集数据>>>文档数据处理>>>储存到索引库中
搜索流程:查询条件>>>查询器查询索引>>>从索引库库中取出>>>视图渲染

全文检索技术应用的场景

img_cbacea140ea375e4a08fb215b407c171.png
狗东

当然这只是举个例子 ,还有很多,比如说专业做搜索引擎的Google Baidu ,还有一些提供站内数据搜索的网站等。

目录
相关文章
|
16天前
|
搜索推荐 关系型数据库 MySQL
MySQL 模糊查询新纪元:超越 LIKE+% 的高效探索
在数据库的日常操作中,模糊查询是一项不可或缺的功能,它允许我们根据不完全匹配的关键字来检索数据。传统上,MySQL 使用 LIKE 关键字配合 % 通配符来实现这一功能,虽然灵活但性能上往往不尽如人意,尤其是在处理大型数据集时。今天,我们将一起探索几种超越 LIKE+% 的模糊查询技术,以提升查询效率与用户体验。
33 2
|
20天前
|
SQL 关系型数据库 MySQL
SQL索引构建与优化的神奇之处:如何用高效索引让你的数据检索飞起来?
【8月更文挑战第31天】在现代软件开发中,数据库索引对于提升查询性能至关重要。本文详细介绍了SQL索引的概念、构建方法及优化技巧,包括避免不必要的索引、使用复合索引等策略,并提供了实用的示例代码,如 `CREATE INDEX index_name ON table_name (column_name, another_column_name);`。通过遵循这些最佳实践,如了解查询模式和定期维护索引,可以大幅提高数据检索效率,从而增强应用程序的整体性能。
53 0
|
4月前
|
SQL 人工智能 自然语言处理
NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理
NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理
NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
干货 | 详述 Elasticsearch 向量检索发展史
干货 | 详述 Elasticsearch 向量检索发展史
230 0
|
4月前
|
缓存 关系型数据库 MySQL
史上最全MySQL 大表优化方案(长文)
史上最全MySQL 大表优化方案(长文)
1368 0
|
存储 SQL 缓存
构建优化之城:MySQL 数据建模、数据类型优化与索引常识全面解析(上)
构建优化之城:MySQL 数据建模、数据类型优化与索引常识全面解析
124 0
|
存储 SQL 关系型数据库
构建优化之城:MySQL 数据建模、数据类型优化与索引常识全面解析(下)
构建优化之城:MySQL 数据建模、数据类型优化与索引常识全面解析(下)
67 0
|
自然语言处理 搜索推荐 索引
白话Elasticsearch23-深度探秘搜索技术之通过ngram分词机制实现index-time搜索推荐
白话Elasticsearch23-深度探秘搜索技术之通过ngram分词机制实现index-time搜索推荐
111 0
|
分布式计算 自然语言处理 Java
白话Elasticsearch06- 深度探秘搜索技术之手动控制全文检索结果的精准度
白话Elasticsearch06- 深度探秘搜索技术之手动控制全文检索结果的精准度
84 0
|
索引
白话Elasticsearch20-深度探秘搜索技术之使用rescoring机制优化近似匹配搜索的性能
白话Elasticsearch20-深度探秘搜索技术之使用rescoring机制优化近似匹配搜索的性能
68 0