一种全文查询方法和装置与流程

文档序号:12464947阅读:202来源:国知局
一种全文查询方法和装置与流程

本发明实施例涉及信息技术领域,尤其涉及一种全文查询方法和装置。



背景技术:

目前在全文查询领域,主要通过对查询条件分词和对分词后的结果检索全文索引库实现对信息的快速查询。但是这样的方法需要开发人员对全文检索的机制比较了解才能够很好的运用。在一般信息系统的开发过程中,开发人员往往对于全文查询了解较少,对数据库和对象更为了解。同时在系统的展现方式上,全文搜索结果与对象列表的形式类似,更类似于表格的形式。而全文查询中的查询结果是文本,需要在处理查询条件和查询结果时进行特别的处理才能满足系统要求,操作复杂,工作量大。



技术实现要素:

有鉴于此,本发明提出一种全文查询方法和装置,简化了用户操作,提高了对全文查询进行编程开发的工作效率。

第一方面,本发明实施例提供了一种全文查询方法,所述方法包括:根据业务需求获取元数据并建立元数据模型,将所述元数据模型以全文索引库的形式进行存储;根据所述全文索引库中的元数据确定对应数据传输对象和所述数据传输对象对应的条件对象;根据所述元数据模型生成对应的数据访问对象,其中,所述数据访问对象中包括查询方法;获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件;根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果。

进一步的,在获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件之前,在根据所述元数据模型生成对应的数据访问对象,其中,所述数据访问对象中包括查询方法之后还包括:确定所述数据传输对象的属性为第一查询条件;或确定数据传输对象中每个字段调用条件对象的关系为第二查询条件。

进一步的,获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件包括:获取用户提供的具体查询对象,所述数据访问对象根据所述第一查询条件或所述第二查询条件将所述具体查询对象解析为全文查询条件。

进一步的,所述数据访问对象中包括查询方法中,所述查询方法包括:单对象查询、列表查询、分析查询和数据统计方法。

进一步的,在根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果之后,还包括:对查询结果进行分析,将所述查询结果以数据传输对象或数据传输对象列表的形式返回给开发人员。

第二方面,本发明实施例提供了一种全文查询装置,所述装置包括:获取单元,用于根据业务需求获取元数据并建立元数据模型,将所述元数据模型以全文索引库的形式进行存储;确定单元,与所述获取单元相连,用于根据所述全文索引库中的元数据确定对应数据传输对象和所述数据传输对象对应的条件对象;生成单元,与所述确定单元相连,用于根据所述元数据模型生成对应的数据访问对象,其中,所述数据访问对象中包括查询方法;解析单元,与所述生成单元相连,用于根据获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件;处理单元,与所述解析单元相连,用于根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果。

进一步的,所述全文查询装置还包括:查询条件确定单元,用于在获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件之前,在根据所述元数据模型生成对应的数据访问对象,其中,所述数据访问对象中包括查询方法之后,确定所述数据传输对象的属性为第一查询条件;或确定数据传输对象中每个字段调用条件对象的关系为第二查询条件。

进一步的,所述解析单元具体用于,获取用户提供的具体查询对象,所述数据访问对象根据所述第一查询条件或所述第二查询条件将所述具体查询对象解析为全文查询条件。

进一步的,所述数据访问对象中包括查询方法中,所述查询方法包括:单对象查询、列表查询、分析查询和数据统计方法。

进一步的,所述全文查询装置还包括分析单元,用于在根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果之后,对查询结果进行分析,将所述查询结果以数据传输对象或数据传输对象列表的形式返回给开发人员。

本发明实施例中,通过全文索引库中的元数据确定对应的数据传输对象和数据传输对象对应的条件对象,根据所述元数据模型生成数据访问对象,根据数据访问对象中的查询方法将用户的具体查询对象解析为全文查询条件,根据全文查询条件在全文索引库中进行查询。实现了开发人员在全文查询工作中,不需要关注全文查询的技术下快速完成用户的查询需求,方便快捷,减少了全文查询开发的工作量。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明实施例一中的一种全文查询的方法的流程图;

图2是本发明实施例二中的一种全文查询的方法的流程图;

图3是本发明实施例三中的一种全文查询的装置的结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。另外还需要说明的是,为了便于说明,以下实施例中示出了与本发明相关的示例,这些示例仅作为说明本发明实施例的原理所用,并不作为对本发明实施例的限定,同时,这些示例的具体数值会根据不同的应用环境和装置或者组件的参数不同而不同。

本发明实施例的用于全文查询的方法和装置可以运行于安装有Windows(微软公司开发的操作系统平台)、Android(谷歌公司开发的用于便携式可移动智能设备的操作系统平台)、iOS(苹果公司开发的用于便携式可移动智能设备的操作系统平台)、Windows Phone(微软公司开发的用于便携式可移动智能设备的操作系统平台)等操作系统的终端中,该终端可以是台式机、笔记本电脑、移动电话、掌上电脑、平板电脑、数码相机、数码摄像机等等中的任意一种。

实施例一

图1是本发明实施例一中的一种全文查询方法的流程图,该方法用于实现在不需要开发人员和全文索引库进行交互的情况下,快速完成全文查询功能。该方法可以由具有全文查询功能的装置来执行,该装置可以由软件和/或硬件方式实现,例如典型的是用户终端设备,例如手机、电脑等。本实施例中的用于触摸屏的操作方法包括:步骤S110、步骤S120、步骤S130、步骤S140和步骤S150。

步骤S110,根据业务需求获取元数据并建立元数据模型,将所述元数据模型以全文索引库的形式进行存储。

具体的,开发人员在开始开发软件之前,分析当前具体的业务需求获取业务相关的元数据,建立元数据模型,并将所述元数据模型以全文索引库的形式进行存储。元数据又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。全文索引的原理是先定义一个词库,然后在文章中查找每个词条出现的频率和位置,把这样的频率和位置信息按照词库的顺序归纳,这样就相当于对文件建立了一个以词库为目录的索引,这样查找某个词的时候就能很快的定位到该词出现的位置。元数据模型包括但不限于全文索引库中包括哪些字段、每个字段的名称、每个字段的具体类型、每个字段的分词规则和全文文档包含的字段内容。

步骤S120,根据所述全文索引库中的元数据确定对应数据传输对象和所述数据传输对象对应的条件对象。

具体的,数据传输对象(Data Transfer Object,DTO)是一种设计模式之间传输数据的软件应用系统。元数据模型包含了DTO以及在包含多个DTO之间的关联关系。可选的,元数据模型可以是职员DTO、岗位DTO、银行DTO和部门DTO等数据传输对象以及四者之间的连接关系。数据传输对象中的字段名和字段类型和全文索引库中的字段名和字段类型一一对应。根据元数据确定数据传输对象的同时会生成配置文件,配置文件包含全文索引库中的分词规则、分词规则对应的查询方法、全文文档包含的字段内容。分词即为对文本进行词语划分,现有的分词规则可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。

对应具体的数据传输对象,可以同时生成对应的条件对象,条件对象包含具体字段与提供数据之间相互关系以及相互关系之间的管理相关的操作。条件对象提供每一个字段的小于,等于,大于,like查询条件构造方法,并提供这些条件之间进行连接的“与”、“或”和“非”关系的连接方法,用于构造复杂的,多层次的查询。条件对象中还提供升序,降序的排序条件,以供开发人员指定排序的对象。同时,生成元数据模型的对象代码,该代码供开发人员开发使用,此过程可以由开发人员手工执行,也可以通过预先设置的具有代码生成功能的工具来执行。

步骤S130,根据所述元数据模型生成对应的数据访问对象,其中,所述数据访问对象中包括查询方法。

具体的,在生成具体的数据传输对象和配置文件的同时,根据元数据模型生成对应的数据访问对象(Data Access Objects,DAO),数据访问对象是数据访问接口,是第一个面向对象的接口。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在该步骤中,生成的数据访问对象中包括查询方法。在应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。

步骤S140,获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件。

具体的,当开发人员提供具体的查询对象以后,数据访问对象中的各种查询方法在接收到具体的查询对象后,将会调用解析功能进行解析,将查询对象解析为全文索引库对应的查询条件。应用解析后的全文查询条件,进行对具体查询对象的全文查询。可选的,具体的查询对象可以是某个部门各员工在特定时间范围内的薪酬状况。

步骤S150,根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果。

具体的,在解析完查询条件后,将会把解析完的全文查询条件传递给全文索引库,由全文索引库进行全文查询,并获取全文索引库返回的查询结果。

可选的,所述数据访问对象中包括查询方法中,所述查询方法包括:单对象查询、列表查询、分析查询和数据统计方法。

具体的,单对象查询是针对数据访问对象中的单个对象进行查询;列表查询是指,将对象以列表的形式呈现出来进行查询;分析方法是指,对对象内容进行分析;数据统计方法是指,统计对象数据进行查询。每个方法包含两个版本,分别接收数据传输对象作为条件和条件对象作为条件。数据传输对象作为条件适用于简单查询,方便快捷;条件对象作为条件适用于复杂的条件查询,准确度高。

进一步的,在根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果之后,还包括:对查询结果进行分析,将所述查询结果以数据传输对象或数据传输对象列表的形式返回给开发人员。

具体的,全文索引库返回的全文查询结果是文本形式的,根据数据传输对象中的各个字段名从文本中提取各自段对应的值。可选的,json(JavaScript Object Notation)是一种轻量级的数据交换格式,主要用于与服务器进行交换数据,它独立语言,在跨平台数据传输上有很大的优势。文本以json形式进行存储,返回回来的也就是json数组形式的查询结果。使用json的解析工具将根据DTO对象中的各个字段名从json文本中进行提取,将字段对应的值从文本结果中提取出来,填充到具体的DTO对象属性中,然后根据调用的需要,以DTO对象或者DTO对象列表的形式返回给开发人员。单对象查询将会获取列表的第一个返回给开发人员,数量统计将仅仅返回查询命中的数量,分页查询将会结合数量统计和列表查询,同时返回查询命中的数量和查询结果列表。

本发明实施例中,通过全文索引库中的元数据确定对应的数据传输对象和数据传输对象对应的条件对象,根据所述元数据模型生成数据访问对象,根据数据访问对象中的查询方法将用户的具体查询对象解析为全文查询条件,根据全文查询条件在全文索引库中进行查询。实现了开发人员在全文查询工作中,不需要关注全文查询的技术下快速完成用户的查询需求,方便快捷,减少了全文查询开发的工作量。

实施例二

图2是本发明实施例中的一种用于全文查询的方法的流程图,本实施例是在实施例一的基础上,步骤S140之前和步骤S130之后还包括:确定所述数据传输对象的属性为第一查询条件;或确定数据传输对象中每个字段调用条件对象的关系为第二查询条件。具体的,本实施例中的用于全文查询的方法包括:步骤S210、步骤S220、步骤S230、步骤S240、步骤S250和步骤S260。

步骤S210,根据业务需求获取元数据并建立元数据模型,将所述元数据模型以全文索引库的形式进行存储。

步骤S220,根据所述全文索引库中的元数据确定对应数据传输对象和所述数据传输对象对应的条件对象。

步骤S230,根据所述元数据模型生成对应的数据访问对象,其中,所述数据访问对象中包括查询方法。

步骤S240,确定所述数据传输对象的属性为第一查询条件;或确定数据传输对象中每个字段调用条件对象的关系为第二查询条件。

具体的,对于简单查询,对数据传输对象进行数据填充,数据传输对象中每一个填充过的属性确定为第一查询条件,条件之间的关系为与。可选的,通过内容和作者进行全文检索,则将内容查询条件和作者查询条件填入数据传输对象中,就完成了本步骤。对于复杂查询,确定每个字段调用条件对象的关系方法为第二查询对象,如大于,小于等方法,并指定各个条件之间的关系为。可选的,通过内容或作者进行全文查询,并按时间降序排序,则先调用等于(eq)方法,再调用或(or)方法,再调用等于(eq)方法,再调用降序(desc)方法,构建出查询条件。

步骤S250,获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件。

步骤S260,根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果。

可选的,获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件包括:获取用户提供的具体查询对象,所述数据访问对象根据所述第一查询条件或所述第二查询条件将所述具体查询对象解析为全文查询条件。

具体的,用户提供具体的查询对象,根据第一查询条件或第二查询条件将具体查询对象解析为全文查询条件。可选的,查询某部门职员人数,可以应用第一查询条件,查询某部门在某个设定时间段内女职工的年龄段分布,可以应用第二查询条件,将查询对象解析为全文查询条件。

本发明实施例中,通过确定所述数据传输对象的属性为第一查询条件;或确定数据传输对象中每个字段调用条件对象的关系为第二查询条件,结合具体的查询对象,将查询对象解析为全文查询条件进行查询。

实施例三

图3是本发明实施例三提供的一种用于全文查询的装置的结构图。该装置适用于执行本发明实施例一和实施例二提供的用于全文查询的方法,该装置具体包括:获取单元310、确定单元320、生成单元330、解析单元340和处理单元350。

获取单元310,用于根据业务需求获取元数据并建立元数据模型,将所述元数据模型以全文索引库的形式进行存储。

确定单元320,与获取单元310相连,用于根据所述全文索引库中的元数据确定对应数据传输对象和所述数据传输对象对应的条件对象。

生成单元330,与确定单元320相连,用于根据所述元数据模型生成对应的数据访问对象,其中,所述数据访问对象中包括查询方法。

解析单元340,与生成单元330相连,用于根据获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件;

处理单元350,与解析单元340相连,用于根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果。

进一步的,所述全文查询装置还包括:查询条件确定单元,用于在获取用户提供的具体查询对象,所述数据访问对象将所述具体查询对象解析为全文查询条件之前,在根据所述元数据模型生成对应的数据访问对象,其中,所述数据访问对象中包括查询方法之后,确定所述数据传输对象的属性为第一查询条件;或确定数据传输对象中每个字段调用条件对象的关系为第二查询条件。

进一步的,解析单元340具体用于,获取用户提供的具体查询对象,所述数据访问对象根据所述第一查询条件或所述第二查询条件将所述具体查询对象解析为全文查询条件。

进一步的,所述数据访问对象中包括查询方法中,所述查询方法包括:单对象查询、列表查询、分析查询和数据统计方法。

进一步的,所述全文查询装置还包括分析单元,用于在根据所述全文查询条件在所述全文索引库中进行查询,记录查询结果之后,对查询结果进行分析,将所述查询结果以数据传输对象或数据传输对象列表的形式返回给开发人员。

本发明实施例中,通过全文索引库中的元数据确定对应的数据传输对象和数据传输对象对应的条件对象,根据所述元数据模型生成数据访问对象,根据数据访问对象中的查询方法将用户的具体查询对象解析为全文查询条件,根据全文查询条件在全文索引库中进行查询。实现了开发人员在全文查询工作中,不需要关注全文查询的技术下快速完成用户的查询需求,方便快捷,减少了全文查询开发的工作量。

显然,本领域技术人员应该明白,上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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