Atitit 非结构化数据管理法 目录 1. 什么是非结构化数据? 1 2. 对非结构化数据也即对全文数据的搜索主要有两种方法: 2 2.1. 顺序扫描法(Serial Scanning): 2 2

Atitit 非结构化数据管理法

 

目录

1. 什么是非结构化数据? 1

2. 对非结构化数据也即对全文数据的搜索主要有两种方法: 2

2.1. 顺序扫描法(Serial Scanning): 2

2.2. 全文检索 多个关键词搜索的算法 3

 

  1. 什么是非结构化数据?

非结构化数据本质上是结构化数据之外的一切数据。非结构化数据具有内部结构,但不通过预定义的数据模型或模式进行结构化。它可能是文本的或非文本的,也可能是人为的或机器生成的。它也可以存储在像NoSQL这样的非关系数据库中。

典型的人为非结构化数据包括:

  • 文本文件:文字处理、电子表格、演示文稿、电子邮件、日志。
  • 电子邮件:由于其元数据,电子邮件具有一些内部结构,人们有时将其称之为半结构化。但是,其消息字段是非结构化的,传统的分析工具无法解析它。
  • 社交媒体:来自Facebook、Twitter和LinkedIn的数据。
  • 网站:YouTube、Instagram、照片分享网站。
  • 移动数据:短信、地点。
  • 通信:聊天、即时消息、电话录音、协作软件。
  • 媒体:MP3、数码照片、音频文件、视频文件。
  • 业务应用程序:MS Office文档、生产力应用程序。

典型的机器生成的非结构化数据包括:

  • 卫星图像:天气数据、地形、军事活动。
  • 科学数据:石油和天然气勘探、空间勘探、地震图像、大气数据。
  • 数字监控:监控照片和视频。
  • 传感器数据:交通、天气、海洋传感器。

 

 

 

按照数据的分类,搜索也分为两种:

对结构化数据的搜索:如对数据库的搜索,用SQL语句。再如对元数据的搜索,如利用windows搜索对文件名,类型,修改时间进行搜索等。

对非结构化数据的搜索:如利用windows的搜索也可以搜索文件内容,linux下的grep命令,再如用Google和百度可以搜索大量内容数据。

  1. 对非结构化数据也即对全文数据的搜索主要有两种方法:
    1. 顺序扫描法(Serial Scanning):

一种是顺序扫描法(Serial Scanning):所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾

一种是顺序扫描法(Serial Scanning):所谓顺序扫描,比如要找内容包含某一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。如利用windows的搜索也可以搜索文件内容,只是相当的慢。如果你有一个80G硬盘,如果想在上面找到一个内容包含某字符串的文件,不花他几个小时,怕是做不到。Linux下的grep命令也是这一种方式。大家可能觉得这种方法比较原始,但对于小数据量的文件,这种方法还是最直接,最方便的。但是对于大量的文件,这种方法就很慢了

    1. 全文检索 多个关键词搜索的算法

比如说,我们要寻找既包含字符串“lucene”又包含字符串“solr”的文档,我们只需要以下几步:

1. 取出包含字符串“lucene”的文档链表。

2. 取出包含字符串“solr”的文档链表。

3. 通过合并链表,找出既包含“lucene”又包含“solr”的文件。

 

看到这个地方,有人可能会说,全文检索的确加快了搜索的速度,但是多了索引的过程,两者加起来不一定比顺序扫描快多少。的确,加上索引的过程,全文检索不一定比顺序扫描快,尤其是在数据量小的时候更是如此。而对一个很大量的数据创建索引也是一个很慢的过程。

然而两者还是有区别的,顺序扫描是每次都要扫描,而创建索引的过程仅仅需要一次,以后便是一劳永逸的了,每次搜索,创建索引的过程不必经过,仅仅搜索创建好的索引就可以

 

 

Ref

非结构化数据处理技术及应用 目录

 

Atitit. 结构化数据非结构化数据 与半结构化数据的区别与搜索策略

 

原文地址:https://www.cnblogs.com/attilax/p/15197117.html