Atitit 非结构化数据管理法
目录
2. 对非结构化数据也即对全文数据的搜索主要有两种方法: 2
2.1. 顺序扫描法(Serial Scanning): 2
非结构化数据本质上是结构化数据之外的一切数据。非结构化数据具有内部结构,但不通过预定义的数据模型或模式进行结构化。它可能是文本的或非文本的,也可能是人为的或机器生成的。它也可以存储在像NoSQL这样的非关系数据库中。
典型的人为非结构化数据包括:
- 文本文件:文字处理、电子表格、演示文稿、电子邮件、日志。
- 电子邮件:由于其元数据,电子邮件具有一些内部结构,人们有时将其称之为半结构化。但是,其消息字段是非结构化的,传统的分析工具无法解析它。
- 社交媒体:来自Facebook、Twitter和LinkedIn的数据。
- 网站:YouTube、Instagram、照片分享网站。
- 移动数据:短信、地点。
- 通信:聊天、即时消息、电话录音、协作软件。
- 媒体:MP3、数码照片、音频文件、视频文件。
- 业务应用程序:MS Office文档、生产力应用程序。
典型的机器生成的非结构化数据包括:
- 卫星图像:天气数据、地形、军事活动。
- 科学数据:石油和天然气勘探、空间勘探、地震图像、大气数据。
- 数字监控:监控照片和视频。
- 传感器数据:交通、天气、海洋传感器。
按照数据的分类,搜索也分为两种:
对结构化数据的搜索:如对数据库的搜索,用SQL语句。再如对元数据的搜索,如利用windows搜索对文件名,类型,修改时间进行搜索等。
对非结构化数据的搜索:如利用windows的搜索也可以搜索文件内容,linux下的grep命令,再如用Google和百度可以搜索大量内容数据。
一种是顺序扫描法(Serial Scanning):所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾
一种是顺序扫描法(Serial Scanning):所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。如利用windows的搜索也可以搜索文件内容,只是相当的慢。如果你有一个80G硬盘,如果想在上面找到一个内容包含某字符串的文件,不花他几个小时,怕是做不到。Linux下的grep命令也是这一种方式。大家可能觉得这种方法比较原始,但对于小数据量的文件,这种方法还是最直接,最方便的。但是对于大量的文件,这种方法就很慢了
比如说,我们要寻找既包含字符串“lucene”又包含字符串“solr”的文档,我们只需要以下几步:
1. 取出包含字符串“lucene”的文档链表。
2. 取出包含字符串“solr”的文档链表。
3. 通过合并链表,找出既包含“lucene”又包含“solr”的文件。
看到这个地方,有人可能会说,全文检索的确加快了搜索的速度,但是多了索引的过程,两者加起来不一定比顺序扫描快多少。的确,加上索引的过程,全文检索不一定比顺序扫描快,尤其是在数据量小的时候更是如此。而对一个很大量的数据创建索引也是一个很慢的过程。
然而两者还是有区别的,顺序扫描是每次都要扫描,而创建索引的过程仅仅需要一次,以后便是一劳永逸的了,每次搜索,创建索引的过程不必经过,仅仅搜索创建好的索引就可以
Ref
非结构化数据处理技术及应用 目录
Atitit. 结构化数据和非结构化数据 与半结构化数据的区别与搜索策略