全文检索的了解

文章目录

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 中国社区官方博客12 小时前
在 Elasticsearch 中使用原生 PromQL 支持查询 Prometheus 指标
大数据·elasticsearch·搜索引擎·信息可视化·全文检索·prometheus
逸Y 仙X15 小时前
Elasticsearch时间类型实战
java·大数据·elasticsearch·搜索引擎·全文检索
逸Y 仙X1 天前
文章二十八:ElasticSearch 运用指标聚合快速统计数值
java·大数据·elasticsearch·搜索引擎·全文检索
档案宝档案管理1 天前
全文检索 vs 条件检索 vs 目录检索:适用场景对比
大数据·数据库·全文检索
逸Y 仙X2 天前
文章二十七:ElasticSearch ES查询模板(Search Template)高效复用实战
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
逸Y 仙X2 天前
文章二十六:ElasticSearch 异步查询执行重度任务
java·大数据·linux·运维·elasticsearch·搜索引擎·全文检索
逸Y 仙X3 天前
文章二十四:Elasticsearch查询排序应用实战e
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
逸Y 仙X3 天前
文章二十五:ElasticSearch 分页查询
java·大数据·数据库·elasticsearch·搜索引擎·全文检索
Elastic 中国社区官方博客4 天前
Elasticsearch percolator 用于电商搜索治理:将模糊查询转换为可控的检索策略
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索