本科学位论文:一种全文检索的思路和实现

本文转载自本人博客:我的博客地址    测试可以访问的    不可访问   

    不可访问授权码错误   


一种全文检索的思路和实现
蓝冰飞寒


摘要:在最初进行设计的时候我是按照搜索引擎来设计的,在做爬行页面的过程中发现了很多问题,都是很难克服的瓶颈。因此放弃了这种方案,采用了单纯搜索本地文件的全文检索策略,全文检索方面有大名鼎鼎的Lucene,之所以没有添加Lucene进来,是因为Lucene封装了建立索引和查询索引的过程,作为毕业论文,我想用自己思路来实现这个过程,我实现了,尽管很笨拙而且看似庞杂。信息检索不是一个人的智力能完成的工作。本文所讨论的是信息检索领域的全文检索技术,切词采用正向最大模式切词,建立索引的时候采用的是流行的倒排索引技术,排序是使用TF-IDF的统计方法,达到的目的就是简单,迅速,准确的找到我们所需要的信息,而不需要对知识进行分类。本文几乎没有在技术上的创新,旨在讲清思路。让搜索不再神秘。本检索程序采用java做为实现语言,采用搜索框的方式进行信息检索,适用于各种实现静态化的网站系统和文本(包括html,txt,pdf,word)形式的文件系统。
关键词:全文检索 倒排索引


1、引言:第三次科技革命使人类由工业社会进入信息社会,信息社会到来的时代称为“知识经济时代”。随着互联网的普及和数字信息量的爆炸式增长,可以让我们足不出户的可以接触到海量的信息。现在,已经有一些优秀的信息检索产品,其中最常用的应该是智能搜索引擎了。智能搜索引擎是在整个互联网上搜索信息,更多的企业中型网站系统,政府部门,都希望有自己的检索系统,能够迅速准确的查询到本系统中的信息。目前对于搜索的讨论都集中Lucene上,Lucene虽然提供了便利,但是他在很大程度上影响了中国程序员在数据检索方面的自主思考。我也是用Lucene进行过信息检索。本索引程序明显没有Lucene优秀,在文中不再讨论Lucene的相关技术。本文的索引策略参考了很多资料,其中也包括Lucene。正如《lucene in action》中作者所说,搜索将成为编程领域的热门话题。  

     传统数据库检索存在的问题:众所周知,sql语句可以通过like等关键字进行匹配,但是我们需要的是进行全文检索,全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法。sql语句的检索只能是特定项,而且大部分数据库都不支持大文本的模糊查询。

     
2、核心算法实现
    2.1 词库
    2.2 停止词
    2.3 切词
    2.4 建立索引
    2.5 排序
3、索引数据结构和索引数据存储算法
3.1 索引数据表结构及表之间关联关系
    3.2 索引数据插入策略
    3.3 索引数据更新策略
    3.4 索引数据删除策略
4、索引模式实现方法
4.1完全索引模式实现
4.2增量索引模式实现
5、关于定时任务的尝试
    5.1 任务创建和执行的过程
    5.2索引删除同步实现
6、检索方法实现
    6.1 带有任务标识的检索方法
    6.2 关键词高亮实现策略
7、查全率和查确率
7.1查全率分析
7.2 查确率分析 
结束语:本文介绍了本检索程序的各个重要部分,本系统具备了高效全文检索的特性,比如倒排索引,正向的最大匹配。在效率上本系统抛弃了Hibernate等底层数据库操作的封装,直接使用jdbc来进行数据库的操作。在一些关键部分采用了批量处理的方式。由于技术和智力水平有限,在切词的准确性方面难做到很精确。
    本文并未直接的索引数据库,索引数据库使用本系统核心架构可以达到更加精准的检索,但是对于数据库的差异性处理本人知识存在欠缺。

    这是我的本科学位论文的最初版本,后来参考了几篇论文后,已经改的面目全非了,论文最多五个大标题,我搞了7个。代码完善中,如果心情好,也会放出。
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值