一种以Lucene为基础的数据库查询方法与流程

文档序号:13760443阅读:390来源:国知局
一种以Lucene为基础的数据库查询方法与流程

技术领域

本发明涉及数据库查询分析技术,具体的说是一种以Lucene为基础的数据库查询方法。



背景技术:

目前互联网技术在飞速进步,全球的信息资源在逐步增多,各行各业都在向着信息化转变,因此需要保存于计算机之上的重要数据日益增加,各种网站的数据库也变得越来越大,例如电子商务类网站,更是有着海量的数据。以往的仅仅面对于网点的数据库查询办法遭遇了很多难题,例如搜索速度很慢、对用户的反应时间太久搜寻的内容和查询者的真实意愿吻合度不高,搜寻结果的内容不够完整,而且它无法依据查询者的搜索意愿进行排序,不能够提高用户搜寻满意度。

信息搜索意为去信息资源的所有序列内查找,寻出那些与查询者本意相吻合的内容,于信息搜索办法内,全文搜索非常实用,并且它是所有搜索办法内通用性最好的。全文搜索会拿着查询者所提供的搜索条件去和文档内的所有的词语对比一下,和数据库查询的字段比对不一样,全文搜索工具的好处是搜寻范围广而且彻底,能够给查询者最为齐全的检索结果。而且,全文搜索会把查询者提供的检索词和索引库里面有关联的索引词比对,和数据库查询的顺序搜寻对比,它在效率方面要有多个数量级的提升。

Lucene是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene是一套用于全文检索和搜寻的开源程式库,为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene索引的具体形式是本身独立的,它和具体的使用平台没干系。Lucene的基本表示单位为8个字节,如果系统是相互兼容的,则它们能够利用相同的索引资源。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供一种以Lucene为基础的数据库查询方法。

本发明所述一种以Lucene为基础的数据库查询方法,解决上述技术问题采用的技术方案如下:所述一种以Lucene为基础的数据库查询方法,参考Lucene索引的层次模式,首先为数据库内资源创建索引,并将索引加进索引资源库内;利用检索条件自索引资源库内查询,获得检索结果并返回;其主要步骤包括创建索引部分、搜寻索引部分。

优选的,所述创建索引部分是指,固定地自数据库内采集资源,并为这些资源进行适当的分析与处理,接着对那些资源创建索引并将它们加进索引资源库内。

优选的,所述创建索引部分具体包括如下步骤:

1)首先获取信息资源,即以固定时间去取得数据库内表格记录的资源,作为创造索引文件的资料来源;

2)接着进行信息资源过滤,在某条记录内,选择待存储的字段使得在维持信息完整度的前提下避免无用的资源内容;

3)其次,分析过滤出来的信息内容,进行分词处理;

4)然后是创建索引,将记录内容加载到资源库内,对前面分好的词语创造索引,索引能够存放在硬盘或内存里面;最终把索引文件放到索引资源库里面。

优选的,所述搜寻索引部分主要内容包括,利用查询者所提供的检索条件去取得查询语句,接着分析处理这些查询语句,之后自索引资源库内查询,将最终的检索结果返回给查询者。

优选的,先取得查询者提供的检索条件,其次分析处理所得到的条件语句的句法语法结构,抽取相应的关键词,依照一定规则来构成句法树,然后通过搜寻索引去找到符合句法的数据库记录。

本发明所述一种以Lucene为基础的数据库查询方法与现有技术相比具有的有益效果是:采用本发明,当查询者提供条件含有若干个词语,本发明能够切分出这几个词语,然后经由Term来比对索引库,且能比对改变顺序的数据库信息,能查询出有关系的记录内容并呈现给查询者,可以明显地改进数据库查询的召回率;

当对某个检索词多次查询时,本发明能够把初次查询的结果加载到计算机的缓存里面,所以当下一次查询到同一个检索词语时,直接去计算机缓存内找到相应的信息,而无须对索引资源库重复检索,可以明显提高搜索查询效率;

能够根据索引链表中的词语频次属性去完成词频位置加权排序算法,它的搜寻结果能够依照词语匹配程度去作排序操作,得出更贴进查询者意愿的记录信息,提升了查询者的搜索质量,能够让查询者取得更为友好的检索体验,增强了用户使用系统的依赖性。

说明书附图

附图1为所述以Lucene为基础的数据库查询方法的流程图;

附图2为所述Lucene索引的层次结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明所述一种以Lucene为基础的数据库查询方法进一步详细说明。

本发明参考全文查询工具Lucene的层次模式,提出了一种以Lucene为基础的数据库查询方法,构造了以Lucene为基础的数据库查询扩展方法,经过试验分析,这个查询扩展方法可以明显地改进数据库查询的速率和召回率,能够让查询者取得更为友好的检索体验。

实施例:

本实施例所述以Lucene为基础的数据库查询方法,参考全文查询工具Lucene的层次模式,首先为数据库内资源创建索引,并将索引加进索引资源库内;利用检索条件自索引资源库内查询,获得检索结果并返回;其主要步骤包括创建索引部分、搜寻索引部分。

Lucene关于分析处理文档的接口与文字、文档形式没有关联,当需要创建索引时,只须让索引工具处理数据流就能够实现。所述创建索引部分主要内容包括,固定地自数据库内采集资源,并为这些资源进行适当的分析与处理,接着对那些资源创建索引并将它们加进索引资源库内。

Lucene本身具有一套成型的搜索工具,查询者能够根据这个搜索工具去完成自身的检索需求。查询者能够实现按需求建立特定的搜寻规定,例如模糊检索、范围检索等。所述搜寻索引部分主要内容包括,利用查询者所提供的检索条件去取得查询语句,接着分析处理这些查询语句,之后自索引资源库内查询,将最终的检索结果返回给查询者。

附图1为所述以Lucene为基础的数据库查询方法的流程图,如附图1所示,采用该数据库查询方法的具体过程如下:首先固定地自数据库内采集资源信息,并为这些资源进行适当的分析与处理,接着对那些资源创建索引模块,并将它们加进索引资源库(索引库)内;然后获取用户所提供的查询条件,接着通过分析查询条件模块分析处理这些查询条件,之后通过查询索引模块自索引资源库(索引库)内查询,呈现查询结果,并将最终的检索结果返回给用户。

附图2为Lucene索引的层次结构示意图,如附图2所示,将Lucene的索引划分为以下几个层次,首先是Index(索引)层,接着为Segment(段)层,其次是Document(文档)层,最底层为Field(字段)层。其中,Index由一些Segment构成,一个段包含许多的文档,而各个文档则含括许多的字段,最后,字段的构成部分是一个个的(Term)词元。

由于Lucene索引是按照一定的结构组织的,因此去进行搜索时可以立刻在索引资源内找到,而无须去之前的资源内执行顺序的搜寻工作,能够把检索的区域缩小很多,极大提高了检索效率。Lucene的数据来源并非是一种确切的格式,仅仅为一种文件的层次,查询者去创建索引的数据源能够为各种格式,可以是xml文档、字符串、txt文档,或者是数据库内的数据资源。

下面为本实施例所述以Lucene为基础的数据库查询方法的具体实施过程,以此来进一步详细了解该数据库查询方法的技术内容和技术效果。

首先创建数据的索引,具体包括如下步骤:

1)首先获取信息资源,即以固定时间去取得数据库内表格记录的资源,作为创造索引文件的资料来源;

2)接着进行信息资源过滤,在某条记录内,如何选择待存储的字段使得在维持信息完整度的前提下避免无用的资源内容,举个例子,对于高校学生来说,一般具有存放价值的是“学号”、“所学专业”、“学习课程”、“考试成绩”等字段,而对于课堂上偶尔进行的随堂测验、模拟考试等信息基本上无须存放;

3)其次,分析过滤出来的信息内容,进行分词处理,目前最常用的分词工具是以搜狗词库为基础的Mmseg4j分词器;

4)然后是创建索引,应该将记录内容加载到资源库内,对前面分好的词语创造索引,索引能够存放在硬盘或者内存里面;最终把索引文件放到索引资源库里面。

在创建索引后,以此为基础进行搜索索引、基础查询,具体过程如下:先取得查询者提供的检索条件,其次分析处理所得到的条件语句的句法语法结构,抽取相应的关键词,依照一定规则来构成句法树,然后通过搜寻索引去找到符合句法的数据库记录。

举例句法树“key1andkey2notkey3”来说明一下检索步骤:

(1)首先,去数据库倒排链表之内寻得各自含有key1、key2、key3的记录;接着,将那些含有key1和key2的数据库记录链表合并在一起,可以获取到同时含有key1和key2的链表;

(2)然后把得到的链表和含有key3的记录执行差运算,去掉那些含有key3的链表,即可以获取到仅仅含有key1、key2却没含有key3的记录,该记录即为最终符合条件的链表。

本实施例所述以Lucene为基础的数据库查询方法,在以往的查询工具的倒排结构的基础上,Lucene加入自身分块创建索引文件的功能,能够为新的资源创建小的索引,以便增加查询效率,经过与已经存在的索引融合,能够改进优化各个索引资源。当对某个检索词多次查询时,本发明把初次查询的结果加载到计算机的缓存里面,所以当下一次查询到同一个检索词语时,直接去计算机缓存内找到相应的信息,而无须对索引资源库重复检索,因此本发明搜索速度可以提高数倍。当查询者提供条件含有若干个词语,本发明能够切分出这几个词语,然后经由Term来比对索引库,且能比对改变顺序的数据库信息,能查询出有关系的记录内容并呈现给用户,本数据库查询扩展方法具有很高的召回率。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1