简介:何为搜索,何为全文搜索
常用的搜索网站,比如百度,谷歌,通过关键字来搜索一些关于关键字的一些信息
一、数据的分类:
①、结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。
比如说用户的表的字段是固定的,除非有一些需求的添加,它会减少或添加某些字段。有一个结构化的格式。
对于结构化数据,我们一般都是可以通过关系型数据库(mysql,oracle)的table的方式存储和搜索,也可以建立索引(加快搜索速度)。通过b-tree等数据结构快速搜索数据。
②、非结构化数据:全文数据,指不定长或无固定格式的数据,如邮件,word文档等。
对于非结构化数据,也即对全文数据的搜索主要有两种方法:顺序扫描发,全文搜索法。
二、顺序扫描
按字面意思,我们可以了解它的大概搜索方式,就是按照顺序扫描的方式查找特定的关键字。比如让你在一篇篮球新闻中,找出"科比”这个名字在哪些段落出现过。那你肯定需要从头到尾把文章阅读一遍,然后标记出关键字在哪些地方出现过。
这种方法毋庸置疑是最低效的,如果文章很长,有几万字,等你阅读完这篇新闻找到"科比“这个关键字那得花多少时间。
三、全文搜索:通过空间换时间
对非结构化数据进行顺序扫描很慢,我们是否可以进行优化?把我们的非结构化数据想办法弄得有一定结构不就行了吗?将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对这些有一定结构的数据进行搜索,从而达到搜索相关较快的目的。这种方式就构成了全文搜索的基本思路。这部分从非结构化的数据中提取出的然后重新组织的信息,我们称之为索引。
我们以NBA中国网站为例,假设我们都是篮球的爱好者,并且我们都是科密,那如何快速找到有关科比的新闻呢?全文搜索的方式就是,将所有新闻中所有的关键字进行提取,比如”科比“,”詹姆斯“,”总冠军“,”MVP"等 关键字,然后对这些关键字建立索引,通过索引我们就可以对应的关键词出现的新闻了。这种的索引也是倒排索引
四、那什么是全文搜索引擎呢?
根据百度百科中的定义,全文搜索引擎是目前广泛 应用的主流搜索引擎,它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指名该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的。
五、搜索引擎
①、Luence
②、Solr
③、Elastic search。