论文部分内容阅读
数据库中存储的数据尤其是以中文文本为代表的非结构化数据不断膨胀,传统的数据库搜索方式对文本数据支持很差。并且数据库中除了文本数据外,还有很多难以解析的复杂类型数据,传统检索方式对此类数据的内容提取往往一筹莫展。此外,随着数据量的增大和高并发的检索访问,单机的存储容量和硬件性能根本不能满足要求,此时就需要搭建分布式检索系统。本文就是基于以上情况,构建了针对数据库的分布式全文检索系统。
本文首先分析和对比了数据库索引和全文索引的特点,给出了为数据库搭建全文索引的必要性。研究了搭建数据库全文检索的关键,包括索引、排序、中文分词等,探讨全文检索的构建以及优化。此外就实现本系统的主要技术进行了对比和分析,给出了使用Apache Solr来搭建系统的原因,并探讨了其主要技术实现方法,在其基础上开发构建了针对大数据库的分布式搜索引擎,有效地解决了数据库对于中文查询的性能和效率问题。
本系统分析数据库中的典型非结构化数据存储类型,不仅为Varchar2、Clob、Blob等主要中文文本数据存储类型分别建立了数据库表,搭建了文本索引,还对各数据表的相关调用建立了共同检索索引。尤其对于Blob类型,由于其中存储了各类文件(Word、Excel、PPT、PDF等),首先进行了文本元数据的提取,然后建立文本索引。并使用JSP、AJAX和Servlet基于本系统的数据库结构,编写了灵活的全文检索和索引管理平台。然后在此基础上,还实现了索引复制和分片,构建了完整的分布式负载均衡的架构,不仅克服了集中式信息检索在容量和访问数量上的瓶颈,也使得检索更加高效和安全。在本文最后,通过对传统查询以及Oracle Text的时间和空间方面的对比,验证了本系统的高效性和灵活性。