全文检索的了解

文章目录

1)全文检索的原理

复制代码
结构化数据搜索快,是因为有一定的搜索算法。
那么是不是可以将非结构数据中的一部分信息提取出来,
重新组织,使其变得有一定结构,
然后对这部分有结构的数据进行搜索,从而达到搜索较快的目的。

索引:从非结构数据中提取出来。重新组织的信息,叫索引。

反向索引:通过字符串来反向映射到文件,即:通过字符串找到对应的文件。
		左边是一系列字符串,称为词典。
		每个字符串都指向包含此字符串的文档链表(倒排表)。

	优点:一次索引可以多次使用。

2)索引的建立

复制代码
1.	有一系列要建立索引的原文档。

2.	将原文档传给分词组件,处理后得到词元。
		具体操作: 
			1)将文档分为一个个单独的单词。
			2)去除标点符号。
			3)去除停词(无特别意义的单词,每一种语言的分词组件都有一个停词集合)。
			
3.	将词元传给语言处理组件,处理后得到一系列词。
		具体操作:
			1)变小写
			2)将单词缩减为词根形式。
			3)将单词转变为词根形式。
			
4. 将得到词传给索引组件,创建索引。
		具体操作:
			1)将得到的词创建一个字典。
			2)对字典按照字母顺序进行排序。
			3)合并相同的词成为文档倒排列表。
			
5.	通过索引存储将索引写入硬盘。

3)搜索过程

复制代码
1.	用户输入查询语句。
2.	对查询语句经过语法分析和语言处理后,得到一系列词。
3.	通过语法分析得到一个查询树。
4.	通过索引存储将索引读入内存。
5.	利用查询树搜索索引,得到每个词的文档链表,对文档链表进行合并、去重,得到结果文档。
6.	将搜索到的结果文档对查询的相关性进行排序。
7.	返回查询结果给用户。

注:如何计算文档和查询语句的相关性?
		1. 找出词对文档的重要性。
				这个过程称为计算词的权重过程。
				影响因素:词+文档
				算法:向量空间模型
						Term Frequency:  在本文档中出现的次数。
						Document Frequency:  文档频次,总共有多少文档包含此词。
						
		2. 判断词之间的关系,得到文档相关性。
		3. 根据相关性从大到小排序。 
相关推荐
Elastic 中国社区官方博客10 小时前
Elasticsearch:搜索教程 - 全文搜索(一)
大数据·python·elasticsearch·搜索引擎·全文检索
想你依然心痛5 天前
【金仓数据库征文】LIKE查询优化:前缀、后缀与全文检索边界
全文检索·执行计划·金仓数据库·like查询·前缀匹配·后缀匹配·gin索引
阿标在干嘛5 天前
政策快报平台全文检索的3次升级:从ES到向量检索
大数据·elasticsearch·全文检索
金士镧厦门新材7 天前
稀土功能助剂是什么?它如何帮助材料实现性能优化?
全文检索
Elastic 中国社区官方博客8 天前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索
Elastic 中国社区官方博客8 天前
如何使用 OpenTelemetry 对你的搜索 API 进行埋点,并使用 ES|QL 对其进行查询
大数据·功能测试·elasticsearch·搜索引擎·全文检索·可用性测试
SelectDB技术团队9 天前
日志平台 ELK 替代场景:Apache Doris / SelectDB 的技术能力与选型对比
全文检索·倒排索引·apache doris·日志平台·selectdb·elk替代
不怕犯错,就怕不做12 天前
GIT的简单打patch应用format-patch and git am
linux·git·全文检索
金士镧厦门新材14 天前
稀土抑烟剂是什么?它在PVC材料中发挥着怎样的作用?
全文检索
五条凪15 天前
简单理解 BM25 与 TF-IDF
人工智能·算法·搜索引擎·全文检索·tf-idf