全文检索的了解

文章目录

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. 根据相关性从大到小排序。 
相关推荐
TableRow4 天前
参数化搜索的实现原理:从多维索引到查询优化
elasticsearch·全文检索
Elastic 中国社区官方博客5 天前
Elasticsearch:使用向量搜索构建现代应用的最佳实践
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
2601_961875248 天前
法考资料电子版|pdf|资料已整理
elasticsearch·搜索引擎·pdf·全文检索·solr·lucene·sphinx
Samooyou12 天前
RAG项目案例--02在线检索&过滤流水线
人工智能·python·ai·全文检索·检索
Jinkxs13 天前
PostgreSQL - 全文检索的开启与基础使用
数据库·postgresql·全文检索
Elastic 中国社区官方博客15 天前
13.7万人,零人工决策:使用 Elasticsearch 实现智能体驱动的灾害响应系统
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
可乐ea15 天前
【知识获取与分享社区项目 | 项目日记第 19 天】基于 Elasticsearch 实现关键词检索与业务权重排序
java·大数据·spring boot·mysql·elasticsearch·搜索引擎·全文检索
Turboex邮件分享15 天前
邮件全文检索与搜索优化
全文检索
Elastic 中国社区官方博客16 天前
Elasticsearch DiskBBQ:使用原生 SIMD Blocks 实现快 40% 的向量评分计算
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索·diskbbq
可乐ea17 天前
【知识获取与分享社区项目 | 项目日记第 20 天】search_after 游标分页:解决 Elasticsearch 深分页稳定性问题
java·大数据·elasticsearch·搜索引擎·全文检索