4.2全文检索4全文检索•全文检索:–是对全文数据进行的检索,其实现机理是不对信息资源进行人工标引,而由计算机直接对文本正文进行匹配查找。•数据:-结构化数据:具有固定格式或长度的数据,如数据库、元数据-非结构化数据:无固定格式,如网页邮件-半结构化数据:xmlhtlm4结构化数据搜索:用sql对数据库搜索,利用操作系统命令对文件类型的元数据按照文件大小、扩展名、修改时间等属性进行搜索等。对非结构化数据搜索:如操作系统进行文件内容关键词的检索;再如用google百度进行的海量信息检索。4全文检索•全文检索方法:–又称为自然语言检索,其实现机理是不对信息资源进行人工标引,而由计算机直接对文本正文进行匹配查找。方法一:最简单的方法是顺序扫描,从待查找的文件中取出第一个文件,从头到尾扫描该文件,匹配待搜索的字符串,如果匹配成功,则将改文件标记为结果文件,然后处理下一个文件。4全文检索•全文检索方法:方法二:索引检索待索引文件查询语句查询结果词法分析语言处理相关性排序语法分析索引创建搜索索引索引索引存储4目前常见全文检索技术:1.百度、谷哥等专业搜索引擎系统。2.数据库类型的全文检索。3.java以Lucence为代表的全文检索系统。4.php以Sphinx为代表的全文检索系统。5.以TRS为代表其他语言及商业全文检索系统。4•专业搜索引擎专业搜索引擎提供了大众化的全网的内容搜索。优点:使用免费,搜索便捷。缺点:过于大众化,很多专业数据被淹没在信息的海洋之中,不便于与应用系统相结合。4•数据库类型全文检索大多数主流数据都提供全文检索功能,如Oracle、Mysql、SqlServer等。优点:和数据库整合到一块,不需要独立建立系统,方便管理,使用方便。缺点:扩展不便,索引和查询都不够灵活方便,会影响数据库运行性能。4Lucence开源搜索引擎核心确切的讲,Lucence不是完整的搜索引擎,它只是一个开发包。优点:自定义索引格式,容易部署,方便扩展,提供丰富强大的查询实现,可以对任一可以影响到结果的功能进行定制。缺点:还未产品化,还存在着一些特定场合的问题。4全文检索大致分为两个部分:索引创建、搜索索引。于是全文检索就存在如下三个问题:1、索引里存着什么?2、如何创建索引?3、如何进行索引搜索?4全文检索•索引的结构文档A中国中华人民共和国文档B中国人民人民文档C中国中华民族正排索引4全文检索•索引结构:倒排索引中国文档A文档B文档C中华文档A文档C民族文档C共和国文档A文档C44全文检索获取源文件分词处理创建倒排列表•索引建立过程4•如何建立倒排列表?创建字典字典排序文档倒排列表4•假设文档集合包含五个文档,每个文档内容如图所示,在图中最左端一栏是每个文档对应的文档编号。我们的任务就是对这个文档集合建立倒排索引。4•中文和英文等语言不同,单词之间没有明确分隔符号,所以首先要用分词系统将文档自动切分成单词序列。这样每个文档就转换为由单词序列构成的数据流,为了系统后续处理方便,需要对每个不同的单词赋予唯一的单词编号,同时记录下哪些文档包含这个单词,在如此处理结束后,我们可以得到最简单的倒排索引444查询索引过程•查询步骤:•1.用户输入查询语句•2.对查询语句进行词法分析语法分析及语言处理词法:单词和关键字语法分析:根据与语法规则形成语法树语言处理:和索引过程几乎相同•3.搜索索引得到符合语法树的文档•4.得到查询语句的相关性对结果排序4相关性与分值44444