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. 结构化数据非结构化数据 与半结构化数据的区别与搜索策略

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

  1. mysql如何实现树状结构_实现树状结构的两种方法

    实现树状结构的两种方法 实现树状结构的两种方法 1.递归法 递归是指在函数中显式的调用它自身. 利用递归法实现树状结构的特点是写入数据速度较快,显示速度较慢(在树的分支/层次较多的情况下尤其明显).适 ...

  2. c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...

    点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...

  3. 通达信交易接口api_股票量化交易-获取数据的两种方法

    量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...

  4. 通达信行情数据获取--python_股票量化交易-获取数据的两种方法

    量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...

  5. 获得GPS数据的两种方法 1读串口

    获得GPS数据的两种方法 1读串口 - [技术] 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://memset.blogbus.com/logs/17801310.ht ...

  6. mysql数据库导入到excel表格数据_[转载]将EXCEL表格中的数据导入mysql数据库表中(两种方法)...

    今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行: 在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保 ...

  7. Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表、修改表,以及增、删、改、查)之详细攻略

    Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表.修改表,以及增.删.改.查)之详细攻略 目录 一.两种方法建立表.修改表,插入多条数据记录 ...

  8. 结构体内存拷贝的两种方法

    结构体内存拷贝的两种方法 前言 内容 总结 前言 最近看一些代码,发现内存拷贝的两种方式,下面我就来介绍一下两种方式. 内容 首先定义一个结构体processorHead.h: #pragma pac ...

  9. 把EXCEL表格导入到MYSQL中_将EXCEL表格中的数据导入mysql数据库表中(两种方法)...

    今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行: 在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保 ...

  10. 最大团问题(使用递归和非递归两种方法)

    文章目录 问题描述 解决方法 递归回溯(递归) 迭代回溯(非递归) 测试样例及测试结果 问题描述 ​ 一个无向图 G = ( V , E ) G=(V,E) G=(V,E) , V V V 是点集, ...

最新文章

  1. 2022-2028年中国医疗+养老产业深度调研及投资前景预测报告
  2. Inno Setup 系列之安装、卸载时调用bat
  3. HDU 2504 又见GCD
  4. px,em, rem的区别,在项目中怎么使用rem.
  5. i7 8700 服务器系统,i7 8700k 云服务器6
  6. 自然语言交流系统 phxnet团队 创新实训 项目博客 (五)
  7. [转]jQuery-1.3.2学习笔记
  8. Assets和Raw区别
  9. Qt编写地图综合应用14-离线地图下载
  10. 思科九年(转载自Internet)
  11. 读懂 PetaLinux:让 Linux 在 Zynq 上轻松起“跑”(转)
  12. Windows系统设置共享文件夹及访问共享文件夹
  13. 水平放滑轮组计算机械效率,滑轮组机械效率     王凤霞
  14. FWT快速沃尔什变换及其应用
  15. 【USACO】2007 Feb Silver Lilypad Pond 白银莲花池
  16. android sqlite 示例,Android SQLite数据库操作示例
  17. 西瓜书第四章习题及答案
  18. LightOJ1197 Help Hanzo —— 大区间素数筛选
  19. vue输入空格符 以及空字符串在页面不显示或者只显示一个的问题
  20. NRF52840 和电脑 进行蓝牙通信

热门文章

  1. python生成序列_python如何生成随机序列?
  2. C++ 五课时入门教学
  3. MySQL 事务 MVCC 版本链
  4. PHP 多维数组转换一维数组
  5. 【库】JavaScript——滚动条( 不是很完善 )
  6. npm 代理的设置和取消
  7. 【刷题】BZOJ 1003 [ZJOI2006]物流运输
  8. 【C++ Primer 第10章】 10.4.1 插入迭代器
  9. day3-python的基础类源码解析——collection类
  10. Android基于mAppWidget实现手绘地图(九)–如何处理地图对象的touch事件