基于星型结构业务模型的动态搜索框架的制作方法

文档序号:8922573阅读:281来源:国知局
基于星型结构业务模型的动态搜索框架的制作方法
【技术领域】:
[0001] 本发明设计了一种标准高效的动态搜索框架,其思想是:利用通用结构模型的数 据统一化处理特点,克服普通搜索技术和业务场景密切绑定的问题,克服普通搜索技术在 不同的业务场景下,开发维护量大,且工程量随着用户搜索条件的增加而急剧增大的问题。 使用本搜索框架,在实际应用中,只需少量的配置,实现了多种不同业务场景下,数据搜索 统一模式实现的问题,降低了开发、维护和后期扩展的工作量。
[0002] 本动态搜索框架的核心是一种基于星型结构的通用数据模型,我们称为"服务实 体(ServiceEntity) "。通过星型的数据结构来描述不同的业务逻辑,使得模型的结构实现 了统一化,并且提供了相关框架实现了数据的统一化处理。在此基础上发明了快速搜索框 架,在不同的搜索业务场景中,只需要做简单的配置,搜索框架根据简单的配置和统一化数 据框架,自动获取足够的搜索业务场景信息,并且根据用户实际输入,动态生成各种复杂的 SQL查询语句,实现多样化的业务场景下,搜索功能的统一模式实现。
【背景技术】:
[0003] 当前页面数据搜索普遍采用的技术:由于商务软件的实际应用场景千差万别,搜 索数据面临的应用场景也千差万别,目前没有固定的前台数据搜索技术来优化工作模式, 普遍采用的搜索技术都具有"零时性"的特点:一般在实际中采用手动设计的方式:根据前 台的输入数据,事先预测好各种可能的搜索条件,设置好各种场景用到的SQL语句,根据用 户在前台的输入,后台判断条件,决定采用哪些的SQL语句。
[0004] 目前搜索技术面临的问题:
[0005] 灵活性差:各种搜索的SQL语句在事先定义好,实际上将搜索过程和具体的场景 密切绑定在一起,必须事先根据可能的搜索情况定义好所有可能的SQL语句,工作量大,前 台能够接受的搜索条件比较有限。目前大部分软件在搜索视图中,能够提供的搜索条件比 较有限,特别是搜索字段对应后台多张数据库表,且前台对应的搜索条件很多,实现起来难 度很大。
[0006] 扩展型差:当在前台增加搜索条件时,所有预先定义的SQL语句可能都会改动。特 别是当后台涉及的表有变化时,增加表或者减少表,不仅所有的SQL语句会重新设计,因为 搜索条件变了,而且搜索场景也需要重新定义。
[0007] 通用性差:在不同的使用场景中,可能需要全部重新设计搜索逻辑。
[0008] 这样造成的后果是:目前大部分软件出于开发量和后期维护的考虑,在用户界面 上只能提供少量的查询条件,比如十个以内,当用户界面上提供的查询条件变多了后,特别 是查询条件涉及到后台多张表联合查询时,工作量会大大增加。从使用者角度上说,商务软 件只要在提供列表视图的页面上,都应该提供丰富的查询功能,才能使得用户能灵活高效 地发挥列表视图的特点。但是通过调查发现,目前大量的商务软件,提供的查询功能都比较 有限,不能做到随时随地,任何形式的数据都提供的查询功能,大部分软件都将查询功能单 独列举出来,只提供有限的查询功能,且只开放给比较核心的数据。
[0009] 星型结构的通用业务模型简介:领域驱动开发模式的提出,使得传统的面向对象 的软件开发中引入了各个部门都能使用,能交流的统一领域模型,使得软件开发更加面向 实际业务需求。但是,在没有统一的业务模型支持的框架下,实际的开发模型普遍是贫血的 JAVA基本数据类(JAVAP0J0类),开发模型和业务模型有不小的区别,需要花费大量精力 实现两种模型的转换;另一方面,实际的业务模型结构是千差万别的,在不同的业务场景, 需要不同的方法来处理不同的业务模型,增加了开发和维护的难度。基于星型结构的通用 业务模型,采用了通用的结构来描述不同场景的业务模型,一方面,使得开发模型和领域模 型实现了合并,直接通过领域模型实现建模,体现而来领域驱动建模ODD)的思想,同时, 统一化的模型使得数据的处理和维护变得简化,进一步使得统一框架来实现数据处理成为 可能。
[0010] 本发明设计了一种基于星型结构的数据模型上的动态搜索框架,该框架实现了搜 索过程和具体的业务场景隔离,具体业务场景由配置信息和统一数据框架提供,在实际应 用中,进行一些简单的配置后,可以自适应实现多种情况下的搜索,框架会根据前台视图模 型传入的搜索参数,自动生成搜索条件,自动找到所有应用到的数据库表,并动态生成各种 场景下的SQL语句,进行搜索。
[0011] 和传统的搜索技术相比,开发的工作量大大减少,维护的工作也大大减少,如果场 景发生变化,不管是变更视图模型的字段或者变更后台搜索的表,只需要调整搜索配置参 数就可以,杜绝了普通搜索技术由于涉及到的搜索字段和后台数据库表增加而开发量,维 护量成几何增加的问题。

【发明内容】

[0012] 本动态搜索框架的下,搜索的实现过程大致为:首先生成搜索场景配置信息、,配 置信息生成由两个阶段构成:"静态配置"和"动态配置","静态配置"需要开发人员在开发 过程中手动配置,"动态配置"是指在实际运行过程中,根据统一化数据框架和用户输入的 搜索信息,动态生成。然后框架根据完整的配置信息生成"逻辑关系路径",每条路径由唯一 的"起始节点"出发,根据一系列关联条件,直到最后一个节点为止。再然后,基于"搜索逻 辑路径",生成SQL语句的搜索条件,并且再次合并路径,直到生成最终的搜索SQL语句。最 后步骤是系统执行搜索命令,并返回搜索结果。
[0013]如前面所述:搜索的实现实现过程可以分为五个阶段:1.静态配置,2.动态配置, 3.动态生成逻辑关系路径,4.生成SQL搜索语句,5执行搜索。前面两个步骤都是为搜索框 架提供完整的搜索配置信息。为了实现完整的配置信息,搜索框架提供了一系列配置类,记 录配置信息,配置信息、分为两类,"静态配置信息"和"动态配置信息",静态配置信息是在 开发时需要事先配置,动态配置信息不需要再开发时配置,而是在运行的过程中动态生成。
[0014] 搜索平台提供的配置类和搜索服务类:
[0015]1?节点配置类SearchNodeComConfigure:在实际查询中,每一个的后台"服务实 体"节点将对应一个节点配置类,用于保存该节点对应的搜索配置信息。配置参数包括: 节点名称,服务实体名称,上下游节点的对应关系,搜索节点编号等等,这些信息在应用场 景开发过程中需要手动配置,以提交给系统。动态配置信息包括:数据库表名称,初始SQL 语句查询条件,有效性标示符等等,这些信息在搜索的运行工程中,根据用户的输入查询参 数,动态生成。
[0016] 2.字段配置注解SearchFieldConfig:该注解在设计前台搜索视图模型时,需要 引用,以表示前台模型中每个字段和后台服务视图节点字段的对应关系。
[0017] 3.搜索字段配置类SEFieldSearchConfig :每一个搜索的字段,将对应一个该类 的实例,这个类中的配置信息在运行过程中,框架通过动态解析前台搜索视图类,每个字段 的注解,自动生成,并且填充相关的配置信息、,并且将这些字段配置类的实例通过列表的 方式聚合,作为节点配置类的熟悉,该类所有的配置信息都是"动态配置信息",在运行过程 中动态生成。
[0018] 4.搜索框架除了这些配置接口类,还提供了一个核心的服务类SearchService来 真正执行搜索的全部过程,该类暴露公共方法doSearch:
[0019] doSearch(SEUIComModel seUlComModel, List<SearchNodeComConfigure>
[0020] searchNodeConfigList, boolean fuzzyFlag)
[0021] 来完成整个搜索过程。输入参数中:SEUIComModelsenComModel为实际运行中, 包含了用户输入查询参数的前台视图模型,List〈SearchNodeComConfigure>searchNodeCo nfigList为控制层传入的静态配置信息,以节点配置类SearchNodeComConfigur
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1