转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/42804713
数据分类:
对于日常生活中的数据,我们可以大致分为如下三大类:结构化数据、非结构化数据、半结构化数据:
结构化数据:指具有固定格式或有限长度的数据,如数据库行数据:存在数据库中,可以用二维表结构来逻辑表达实现的数据
非结构化数据:指不定长度或者无固定格式的数据,如邮件、word文档、音频、超音频等
半结构化数据:对于这种数据可以按照结构化数据来处理,也可以提取纯文本按照非结构化数据来处理,如xml数据
对于不同的数据当然就需要采取不同的检索方式,结构化数据大家也许都很熟悉,可以用熟悉的sql语句进行检索,如“select * from student where stuno like '2014%'”,这样一条简单的sql语句就可以查找到所有学号以2014开始的学生信息了;那对于非结构化的数据又该如何处理呢?使用sql中的like?这答案显然是否定的,对于非结构化的数据常用的检索方式有顺序扫描、索引(Index),不用测试也可以知道,顺序扫描的效率还是相当差的,下面就重点的介绍一下对非结构化数据的索引检索。
索引步骤:
对于非结构化数据采用索引检索又可以说是全文检索(Full-Text-Search),在索引过程中,我大致给它分成两大步骤:
索引创建(Indexing):将结构化数据或非结构化数据提取信息创建索引的过程,具体如下图左半部分所示:
搜索索引(Search)根据用户的查询条件,检索已创建的索引,返回查询结果的过程,具体如参照下图右半部分所示: