全文检索的了解

文章目录

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. 根据相关性从大到小排序。 
相关推荐
醉颜凉3 小时前
RedisSearch 全文检索:中文分词、索引构建与搜索结果排序
全文检索·中文分词·索引构建·搜索排序·redissearch
天天喝旺仔11 小时前
Elasticsearch 全文检索实战:Lucene 倒排索引与 NoSQL 文档检索落地
elasticsearch·搜索引擎·全文检索·nosql·lucene
Elastic 中国社区官方博客2 天前
Elasticsearch 向量数据库:几分钟内完成部署,以经济高效的方式扩展至数千亿规模
大数据·运维·数据库·elasticsearch·搜索引擎·ai·全文检索
Elastic 中国社区官方博客3 天前
Elasticsearch Python DSL 客户端开发
大数据·数据库·python·elasticsearch·搜索引擎·全文检索
HwJack203 天前
HarmonyOS开发全文检索 FTS 小实战:中文分词与聊天记录搜索
全文检索·中文分词·harmonyos
Elastic 中国社区官方博客4 天前
教程:使用 ES|QL 进行威胁狩猎
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·安全威胁分析
Elastic 中国社区官方博客4 天前
隐藏在可观测性数据中的安全攻击
大数据·网络·安全·elasticsearch·搜索引擎·全文检索
Elastic 中国社区官方博客5 天前
如何通过一条 ES|QL 查询为 Elasticsearch 中的每个指标构建指标图表
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·kibana
Elastic 中国社区官方博客5 天前
Elasticsearch:ES|QL 搜索教程
大数据·数据库·人工智能·sql·elasticsearch·搜索引擎·全文检索
Elastic 中国社区官方博客7 天前
在 Elasticsearch 中回填时间序列数据:通过批量 API 加载数月的历史指标数据
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索