CN106844753B - 一种构建网元树组件的方法以及装置 - Google Patents
一种构建网元树组件的方法以及装置 Download PDFInfo
- Publication number
- CN106844753B CN106844753B CN201710084125.0A CN201710084125A CN106844753B CN 106844753 B CN106844753 B CN 106844753B CN 201710084125 A CN201710084125 A CN 201710084125A CN 106844753 B CN106844753 B CN 106844753B
- Authority
- CN
- China
- Prior art keywords
- network element
- level
- element tree
- tree
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种构建网元树组件的方法以及装置,涉及通信网络优化领域。其中,所述方法包括:使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。通过本发明,不仅可支持百万数量级网元数据的高效初始化,而且还能够快速返回用户查找的网元结果,同时维护方便,可扩展性强。
Description
技术领域
本发明涉及通信网络优化领域,具体地,涉及一种构建网元树组件的方法以及装置。
背景技术
随着通信网络的飞速发展,网络结构越来越复杂,网元作为通信网络优化的主要分析对象,其类别及数量也越来越多。以往的网元树初始化维度单一,在网元数量较多的情况下,经常出现初始化缓慢,甚至界面假死的情况;用户在不展开节点的情况下,有时得不到正确的网元分析对象;用户在查找网元时,不能快速返回查找结果等问题。正因为这些问题严重影响用户体验,因此,构建一个高效、灵活及稳定的网元树组件,对用户进行网络优化分析时非常重要。
发明内容
本发明的目的是提供一种构建网元树组件的方法以及装置。其中,所述方法所要解决的技术问题是:如何实现网元数据的高效初始化,并快速返回用户查找的网元结果。
为了实现上述目的,本发明提供一种构建网元树组件的方法。所述方法包括:
使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;
通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;
利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。
可选地,所述使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系,包括:
使用所述Redis中的Hash数据结构缓存配置信息和网元信息;
使用所述Redis中的List数据结构缓存配置信息之间、配置信息与网元之间、网元与网元之间的所属关系。
可选地,所述方法还包括:
使用Spring Data Redis框架提供的定时任务在预设时间清除所述Redis中的Hash数据结构和List数据结构缓存的数据,并在所述Hash数据结构和List数据结构中重新缓存新的数据。
可选地,所述通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点,包括:
使用zTree插件向Java提供的后端服务发送获取网元树的第一层级节点的请求,所述请求包括网元树级别,省份、地市、厂家和初始化方式;
所述后端服务根据所述请求中的网元树级别查找到对应的服务类,再根据所述服务类从所述Redis中取出第一层级节点的数据,再根据所述请求对所述数据进行过滤,标记层级节点的类型;
所述后端服务根据所述请求中传入的初始化方式标记下一层级节点的类型,并将过滤后的数据组装成zTree插件要求的Json格式进行返回。
可选地,所述方法还包括:
在用户展开非叶子节点时,若所述非叶子节点下的节点未初始化,使用zTree插件向Java提供的后端服务发送第一请求,所述第一请求包括网元树级别、初始化方式、点击节点的编号、下一层级类型标识和网元过滤参数;
所述后端服务根据所述网元树级别查找到对应的服务类,并根据层级类型标识从所述Redis中取出该层级的节点数据,再根据所述网元过滤参数进行过滤,得到过滤后的数据;
所述后端服务根据所述第一请求中的初始化方式标记下一层级节点的类型,并将过滤后的数据组装成zTree插件要求的Json格式进行返回。
可选地,所述利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,包括:
在接收到所述搜索请求后,所述后端服务调用所述Solr的API接口传入所述搜索请求中的查找关键字、网元树级别、过滤参数和初始化方式,并根据所述查找关键字、网元树级别、过滤参数和初始化方式搜索到网元编号和网元名称;
根据所述网元编号和所述网元名称在所述Redis中取出相应的网元归属信息,并将所述网元归属信息进行返回呈现。
可选地,所述方法还包括:
在返回网元树选中节点时,将网元树中每个层级设计为一个集合对象,遍历每一个选中节点,并将该节点编号加入到对应层级集合的对象中;
将各层级集合对象、网元树初始化级别和初始化过滤参数以JSON数据格式返回。
可选地,所述方法还包括:
所述后端服务根据返回的JSON格式对象中的网元级别确定最终要返回的网元类型;
所述后端服务根据各层级集合中的数据和最终返回网元类型的所属关系取出网元,并根据过滤条件过滤,最终得到具体的分析网元对象。
可选地,所述方法还包括:
网元树组件支持平铺及下拉式选择网元,下拉式网元树组件采用扩展Easy UI的combo组件实现。
相应地,本发明还提供一种构建网元树组件的装置。所述装置包括:
缓存单元,用于使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;
异步初始化单元,用于通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;
搜索单元,用于利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。
由上述技术方案可知,使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;并通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;再利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式,不仅能够实现网元数据的高效初始化,而且还能够快速返回用户查找的网元结果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1是本发明一实施例提供的构建网元树组件的方法的流程图;
图2是本发明一实施例提供的按网元类型初始化小区级网元树的示意图;
图3是本发明一实施例提供的按行政区初始化小区级网元树的示意图;
图4是本发明一实施例提供的按支局初始化小区级网元树的示意图;
图5是本发明一实施例提供的按场景初始化小区级网元树的示意图;
图6是本发明一实施例提供的按室内室外初始化小区级网元树的示意图;
图7是本发明一实施例提供的按环境类型初始化小区级网元树的示意图;
图8是本发明一实施例提供的按网元分组初始化小区级网元树的示意图;
图9是本发明一实施例提供的按支局初始化方式搜索小区的示意图;
图10是本发明一实施例提供的按场景初始化方式搜索小区的示意图;
图11是本发明一实施例提供的网元选择的示意图;
图12是本发明一实施例提供的平铺式网元树组件的示意图;
图13是本发明一实施例提供的下拉式网元树组件的示意图;
图14是本发明一实施例提供的构建网元树组件的装置的结构示意图;
图15是本发明又一实施例提供的构建网元树组件的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一实施例提供的构建网元树组件的方法的流程图。如图1所示,本发明一实施例提供的构建网元树组件的方法包括:
在步骤S101中,使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系。
具体地,该步骤包括:使用所述Redis中的Hash数据结构缓存配置信息和网元信息;使用所述Redis中的List数据结构缓存配置信息之间、配置信息与网元之间、网元与网元之间的所属关系。
在具体的实施方式中,Redis是一个开源的、支持多种数据结构的、基于key-value存储的高性能内存数据库。为了实现高效初始化及加载网元,采用提前缓存省份、地市、行政区、厂家等配置信息与网元数据及网元间的从属关系。使用Redis中Hash数据结构缓存配置信息及网元信息,将对象类型及其编号作为key,对象信息作为value,如缓存一条省份配置记录,key为”provice:101”,其中101为省份编号,value为一个Map对象,分别记录省份的编号、名称等关键信息,然后使用redisTemplate.opsForHash().putAll(key,value)方法将该记录进行缓存,该方法为Spring Data Redis框架提供。
使用Redis中的List数据结构缓存配置信息之间、配置信息与网元、网元与网元之间的所属关系,此时将对象关系标识与从属对象的父级对象编号作为key,从属对象的编号作为value,如缓存一个eNodeb下有哪些小区,key为”eNodeb-cell:101.25369”(其中101.25369为eNodeb编号),遍历所有小区信息,如果所属eNodeb为101.25369,则将value设为该小区的编号,并使用redisTemplate.opsForList().rightPush(key,value)将小区编号加入集合中后续通过redisTemplate.opsForList().range("eNodeb-cell:101.25369",0,-1)即可得到编号为101.25369的eNodeb下有哪些小区。
为了能较快体现网元变化信息,又不影响用户日常使用,使用Spring框架提供的定时任务每天凌晨清除已有缓存并重新缓存。优选地,所述方法还包括:使用Spring DataRedis框架提供的定时任务在预设时间清除所述Redis中的Hash数据结构和List数据结构缓存的数据,并在所述Hash数据结构和List数据结构中重新缓存新的数据。
接着,在步骤S102中,通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点。
具体地,该步骤包括:使用zTree插件向Java提供的后端服务发送获取网元树的第一层级节点的请求,所述请求包括网元树级别,省份、地市、厂家和初始化方式;所述后端服务根据所述请求中的网元树级别查找到对应的服务类,再根据所述服务类从所述Redis中取出第一层级节点的数据,再根据所述请求对所述数据进行过滤,标记层级节点的类型;所述后端服务根据所述请求中传入的初始化方式标记下一层级节点的类型,并将过滤后的数据组装成zTree插件要求的Json格式进行返回。
其中,zTree插件是一个基于jQuery实现的多功能“树插件”。其性能优异,配置灵活,提供多种事件响应回调,支持Ajax异步加载节点数据。在具体的实施方式中,该网元树组件支持多种初始化方式,如图2-图8所示。其中,图2是按网元类型初始化小区级网元树,图3是按行政区初始化小区级网元树,图4是按支局初始化小区级网元树,图5是按场景初始化小区级网元树,图6是按室内室外初始化小区级网元树,图7是按环境类型初始化小区级网元树,图8是按网元分组初始化小区级网元树。初始化时,zTree首先请求Java后端服务获取网元树的第一层级节点,并传入网元树级别、省份、地市、厂家、初始化方式等参数,当服务端接收到请求后,通过网元树级别参数找到对应的服务类,再从Redis缓存中取出第一层级节点数据(通常为省份或地市)并根据传入参数进行过滤,标记节点层级类型(省份或地市),同时根据传入初始化方式标记下一层级节点类型,并将数据组装成zTree要求的JSON格式数据进行返回。
优选地,所述方法还包括:在用户展开非叶子节点时,若所述非叶子节点下的节点未初始化,使用zTree插件向Java提供的后端服务发送第一请求,所述第一请求包括网元树级别、初始化方式、点击节点的编号、下一层级类型标识和网元过滤参数;所述后端服务根据所述网元树级别查找到对应的服务类,并根据层级类型标识从所述Redis中取出该层级的节点数据,再根据所述网元过滤参数进行过滤,得到过滤后的数据;所述后端服务根据所述第一请求中的初始化方式标记下一层级节点的类型,并将过滤后的数据组装成zTree插件要求的Json格式进行返回。
在具体的实施方式中,用户展开非叶子节点时,若其下节点未初始化,zTree发送请求并传递网元树级别、初始化方式、点击节点的编号、下一层级类型标识及网元过滤参数,后端根据传入的网元树级别找到对应服务类,根据层级类型标识从Redis缓存中取出该层级的节点数据并根据过滤条件过滤,同时根据传入初始化方式标记下一层级节点类型,并将获取到的数据组装成zTree要求的JSON格式数据进行返回。每次返回的节点信息中标记了当前层级类型及下一层级类型,并且若该节点下无叶子节点(即以该节点编号作为key缓存的集合数据为空),则设置该节点为叶子节点,否则为非叶子节点。
最后,在步骤S103中,利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果。
其中,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。Solr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。具体地,该步骤包括:在接收到所述搜索请求后,所述后端服务调用所述Solr的API接口传入所述搜索请求中的查找关键字、网元树级别、过滤参数和初始化方式,并根据所述查找关键字、网元树级别、过滤参数和初始化方式搜索到网元编号和网元名称;根据所述网元编号和所述网元名称在所述Redis中取出相应的网元归属信息,并将所述网元归属信息进行返回呈现。
在具体的实施方式中,网元信息存储在数据库中,当用户搜索网元时,如果直接从数据库中搜索,由于小粒度网元数据量较大,这样效率会比较低下,可以借助Solr将要搜索的网元信息在搜索服务器上进行索引,利用Solr搜索引擎快速返回查找结果。使用Solr每天定时同步数据库中的网元数据,当用户在网元树上进行搜索时,前端向后台服务发起请求并传入查找关键字、网元树级别、过滤参数及初始化方式,后台服务调用Solr API并传入接收到的关键字、网元树级别、过滤参数得到搜索到的网元编号、名称等关键信息,如果配置了需要按初始化方式层级树形展示搜索结果,此时程序遍历搜索到的网元编号,从Redis缓存中根据网元编号取出网元归属信息,根据初始化方式,逐层自下而上构建树形结构数据并返回呈现,如图9和图10所示,否则直接将搜索结果封装成JOSN格式呈现到网元组件的搜索树上。
优选地,所述方法还包括:在返回网元树选中节点时,将网元树中每个层级设计为一个集合对象,遍历每一个选中节点,并将该节点编号加入到对应层级集合的对象中;将各层级集合对象、网元树初始化级别和初始化过滤参数以JSON数据格式返回。藉此,可避免将节点编号直接作为分析对象所导致的错误。
其中,该网元树是异步树,而且有些层级可能是非网元节点(如省份、地市、厂家等信息)或者用户并未展开到初始化级别的网元节点(如初始化为小区级别网元树,但是用户只展开到了eNodeb层级)而选择分析对象,因而如果直接将用户所选的节点编号作为分析对象可能是不正确的。
该方法将网元树每个层级设计为一个集合对象,遍历每一个选中节点,若该节点为第一层级节点,则直接将其节点编号加入对应层级集合对象中(根据节点的层级类型),若该节点其父节点为选中状态,则忽略,否则将该节点编号加入对应层级集合对象中。然后将各层级集合对象、网元树初始化级别及初始化过滤参数以JSON数据格式返回。如图11所示,所选网元返回JSON格式数:
{"neLevel":"L00805","selectType":"byVendor","province":[],"city":[],"district":[],"substation":[],"vendor":[{"cityId":"12101","cityName":"杭州","id":"1","name":"华为"}],"coverType":[],"coverAreaType":[],"sceneType":[],"scene":[],"neGro up":[],"enodeb":[{"id":"LTE.318896","name":"LF_H_YY余马渚高阶沿"}],"cell":[{"id":"LTE.318945.49","name":"LF_H_CX慈周巷路桥_49"}],"neFilter":{"cityList":null,"vendorList":["0"],"sysTypeList":null}}
在实际的应用中,所述方法还包括:所述后端服务根据返回的JSON格式对象中的网元级别确定最终要返回的网元类型;所述后端服务根据各层级集合中的数据和最终返回网元类型的所属关系取出网元,并根据过滤条件过滤,最终得到具体的分析网元对象。
具体地,根据上述得到JSON格式的分析对象,后台提供了一个通用的服务根据传入的JSON格式对象,从Redis中取出具体的网元对象进行返回。首先根据JSON格式数据中的网元级别确定最终要返回的网元类型,然后根据各层级集合中的数据及与最终返回网元类型的所属关系取出网元,并根据过滤条件过滤,最终得到具体的分析网元对象。
优选地,所述方法还包括:网元树组件支持平铺及下拉式选择网元,下拉式网元树组件采用扩展Easy UI的combo组件实现。藉此,可支持平铺及下拉式选择网元。
在具体的实施方式中,该网元树组件支持平铺及下拉式选择网元,如图12和图13所示,下拉式网元树组件采用扩展EasyUI的combo组件实现,该组件在页面上显示一个可编辑的文本框和下拉面板。通过扩展,将平铺的网元树置于下拉面板中,同时添加确定、取消按钮,当点击确定按钮时,隐藏下拉面板,并将网元树选择的网元JOSN格式数据设为下拉框的选中值,对象名称以逗号分隔显示在文本框中。
本实施例通过使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;并通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;再利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式,不仅能够实现网元数据的高效初始化,而且还能够快速返回用户查找的网元结果。
进一步地,本发明实施例提供的方法是以通信网元数据为基础,支持通过传入省份、地市、厂家、网络类型、网元级别等参数初始化各级别的网元树,针对小粒度的网元(如小区)提供多种初始化方式(如按行政区、按支局、按室内室外、按场景类型、按环境类型等),同时支持用户根据网元名称、网元编号等关键信息查找网元,并以JSON格式返回所选网元,支持平铺及下拉式选择网元。采用本发明实施例提供的方法,可以支持百万数量级网元数据高效初始化,用户可以多种维度选择网元,可以在不展开网元树节点的情况下任意层级选择并得到分析网元对象,能够快速返回用户查找网元结果并支持按初始化方式层级树形展示搜索结果,同时维护方便,可扩展性强。
本发明实施例的核心点是以通信网元数据为基础,使用Java、Redis、Solr、EasyUI、zTree等技术或插件构建网元树组件。其中Java提供后端服务,每一种网元级别对应一个服务类;Redis用于缓存省份、地市、行政区、厂家等配置信息,网元数据及网元间的从属关系;Solr提供网元搜索服务;EasyUI及zTree用于前端构建网元树组件。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图14是本发明一实施例提供的构建网元树组件的装置的结构示意图。如图14所示,本发明一实施例提供的构建网元树组件的装置包括缓存单元201、异步初始化单元202和搜索单元203,其中:
缓存单元201,用于使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;
异步初始化单元202,用于通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;
搜索单元203,用于利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。
本实施例提供的构建网元树组件的装置适用于以上实施例对应的构建网元树组件的方法,在此不再赘述。
本实施例提供的构建网元树组件的装置,缓存单元201使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;异步初始化单元202通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;搜索单元203利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式,不仅能够实现网元数据的高效初始化,而且还能够快速返回用户查找的网元结果。
图15是本发明又一实施例提供的构建网元树组件的装置的结构示意图。如图15所示,所述构建网元树组件的装置包括:处理器(processor)301、存储器(memory)302和通信总线303;
其中,所述处理器301和存储器302通过所述通信总线303完成相互间的通信;
所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系;通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的构建网元树组件的装置等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。
Claims (9)
1.一种构建网元树组件的方法,其特征在于,所述方法包括:
使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系,具体地,该步骤包括:使用所述Redis中的Hash数据结构缓存配置信息和网元信息;使用所述Redis中的List数据结构缓存配置信息之间、配置信息与网元之间、网元与网元之间的所属关系;
通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;
利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。
2.根据权利要求1所述的构建网元树组件的方法,其特征在于,所述方法还包括:
使用Spring Data Redis框架提供的定时任务在预设时间清除所述Redis中的Hash数据结构和List数据结构缓存的数据,并在所述Hash数据结构和List数据结构中重新缓存新的数据。
3.根据权利要求1所述的构建网元树组件的方法,其特征在于,所述通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点,包括:
使用zTree插件向Java提供的后端服务发送获取网元树的第一层级节点的请求,所述请求包括网元树级别,省份、地市、厂家和初始化方式;
所述后端服务根据所述请求中的网元树级别查找到对应的服务类,再根据所述服务类从所述Redis中取出第一层级节点的数据,再根据所述请求对所述数据进行过滤,标记层级节点的类型;
所述后端服务根据所述请求中传入的初始化方式标记下一层级节点的类型,并将过滤后的数据组装成zTree插件要求的Json格式进行返回。
4.根据权利要求3所述的构建网元树组件的方法,其特征在于,所述方法还包括:
在用户展开非叶子节点时,若所述非叶子节点下的节点未初始化,使用zTree插件向Java提供的后端服务发送第一请求,所述第一请求包括网元树级别、初始化方式、点击节点的编号、下一层级类型标识和网元过滤参数;
所述后端服务根据所述网元树级别查找到对应的服务类,并根据层级类型标识从所述Redis中取出该层级的节点数据,再根据所述网元过滤参数进行过滤,得到过滤后的数据;
所述后端服务根据所述第一请求中的初始化方式标记下一层级节点的类型,并将过滤后的数据组装成zTree插件要求的Json格式进行返回。
5.根据权利要求1所述的构建网元树组件的方法,其特征在于,所述利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,包括:
在接收到所述搜索请求后,所述后端服务调用所述Solr的API接口传入所述搜索请求中的查找关键字、网元树级别、过滤参数和初始化方式,并根据所述查找关键字、网元树级别、过滤参数和初始化方式搜索到网元编号和网元名称;
根据所述网元编号和所述网元名称在所述Redis中取出相应的网元归属信息,并将所述网元归属信息进行返回呈现。
6.根据权利要求1所述的构建网元树组件的方法,其特征在于,所述方法还包括:
在返回网元树选中节点时,将网元树中每个层级设计为一个集合对象,遍历每一个选中节点,并将该节点编号加入到对应层级集合的对象中;
将各层级集合对象、网元树初始化级别和初始化过滤参数以JSON数据格式返回。
7.根据权利要求6所述的构建网元树组件的方法,其特征在于,所述方法还包括:
所述后端服务根据返回的JSON格式对象中的网元级别确定最终要返回的网元类型;
所述后端服务根据各层级集合中的数据和最终返回网元类型的所属关系取出网元,并根据过滤条件过滤,最终得到具体的分析网元对象。
8.根据权利要求1所述的构建网元树组件的方法,其特征在于,所述方法还包括:
网元树组件支持平铺及下拉式选择网元,下拉式网元树组件采用扩展Easy UI的combo组件实现。
9.一种构建网元树组件的装置,其特征在于,所述装置包括:
缓存单元,用于使用数据库Redis缓存配置信息、网元数据以及网元之间的从属关系,其中,所述缓存单元具体用于:使用所述Redis中的Hash数据结构缓存配置信息和网元信息;使用所述Redis中的List数据结构缓存配置信息之间、配置信息与网元之间、网元与网元之间的所属关系;
异步初始化单元,用于通过使用zTree插件请求Java提供的后端服务进行异步初始化网元树,并标记网元树每一层级的类型,及根据网元树的下一层级的类型进行异步加载子节点;
搜索单元,用于利用搜索引擎Solr向Java提供的后端服务发起搜索请求,以使得所述后端服务返回搜索结果,所述搜索请求包括查找关键字、网元树级别、过滤参数和初始化方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710084125.0A CN106844753B (zh) | 2017-02-16 | 2017-02-16 | 一种构建网元树组件的方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710084125.0A CN106844753B (zh) | 2017-02-16 | 2017-02-16 | 一种构建网元树组件的方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106844753A CN106844753A (zh) | 2017-06-13 |
CN106844753B true CN106844753B (zh) | 2019-12-20 |
Family
ID=59129062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710084125.0A Active CN106844753B (zh) | 2017-02-16 | 2017-02-16 | 一种构建网元树组件的方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844753B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391691A (zh) * | 2017-07-26 | 2017-11-24 | 成都科来软件有限公司 | 一种网络分析中数据的过滤方法 |
CN109408699B (zh) * | 2018-09-14 | 2022-02-08 | 厦门天锐科技股份有限公司 | 一种同步缓存zTree树实现树节点快速检索的方法 |
CN111866135A (zh) * | 2020-07-20 | 2020-10-30 | 百度在线网络技术(北京)有限公司 | 用于电子设备的消息显示控制方法、装置、电子设备以及可读介质 |
CN112214662A (zh) * | 2020-10-12 | 2021-01-12 | 深圳壹账通智能科技有限公司 | 服务关系查询方法、装置、电子设备及存储介质 |
CN112671569B (zh) * | 2020-12-16 | 2022-09-30 | 牙木科技股份有限公司 | 一种基于配置分级的网络管理方法和*** |
CN113836212B (zh) * | 2021-09-27 | 2023-09-08 | 易保网络技术(上海)有限公司 | 数据库数据自动生成Json数据的方法、可读介质和电子设备 |
CN115185426B (zh) * | 2022-06-28 | 2024-06-04 | 统信软件技术有限公司 | 树形控件的数据处理方法、装置及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571420A (zh) * | 2011-12-20 | 2012-07-11 | 深圳市同洲视讯传媒有限公司 | 一种网元数据管理方法及*** |
CN104618455A (zh) * | 2015-01-12 | 2015-05-13 | 北京中交兴路车联网科技有限公司 | 一种通用缓存***及其方法 |
CN105808638A (zh) * | 2016-02-23 | 2016-07-27 | 平安科技(深圳)有限公司 | 数据处理方法和*** |
CN105893031A (zh) * | 2016-03-28 | 2016-08-24 | 广州华多网络科技有限公司 | 一种缓存操作实现方法、业务层方法的调用方法及装置 |
-
2017
- 2017-02-16 CN CN201710084125.0A patent/CN106844753B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571420A (zh) * | 2011-12-20 | 2012-07-11 | 深圳市同洲视讯传媒有限公司 | 一种网元数据管理方法及*** |
CN104618455A (zh) * | 2015-01-12 | 2015-05-13 | 北京中交兴路车联网科技有限公司 | 一种通用缓存***及其方法 |
CN105808638A (zh) * | 2016-02-23 | 2016-07-27 | 平安科技(深圳)有限公司 | 数据处理方法和*** |
CN105893031A (zh) * | 2016-03-28 | 2016-08-24 | 广州华多网络科技有限公司 | 一种缓存操作实现方法、业务层方法的调用方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106844753A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844753B (zh) | 一种构建网元树组件的方法以及装置 | |
CN106484877B (zh) | 一种基于hdfs的文件检索*** | |
CN104160394B (zh) | 用于半结构化数据的可缩放分析平台 | |
US9317557B2 (en) | Answering relational database queries using graph exploration | |
Poorthuis et al. | Making big data small: strategies to expand urban and geographical research using social media | |
JP5823037B2 (ja) | インデックス構築方法、検索方法、検索デバイス、および検索システム | |
CN103678494A (zh) | 客户端同步服务端数据的方法及装置 | |
US20090222404A1 (en) | Querying nonsql data stores with a sql-style language | |
US9229979B2 (en) | Optimizing parallel queries using interesting distributions | |
CN106407303A (zh) | 数据存储、查询方法及装置 | |
JP2013535749A (ja) | 積極的な情報のプッシュ通知のための方法およびそのためのサーバ | |
RU2632414C2 (ru) | Способ формирования иерархической структуры данных, способ поиска данных с помощью иерархической структуры данных, сервер и постоянный машиночитаемый носитель | |
CN103154943A (zh) | 新数据和更新的数据的基于企业的搜索 | |
US11487707B2 (en) | Efficient file path indexing for a content repository | |
CN109669925B (zh) | 非结构化数据的管理方法及装置 | |
CN105760380A (zh) | 数据库查询方法、装置及*** | |
US20170193095A1 (en) | Machine Processing of Search Query based on Grammar Rules | |
CN103617199A (zh) | 一种操作数据的方法和*** | |
US10642530B2 (en) | Global occupancy aggregator for global garbage collection scheduling | |
US20170169027A1 (en) | Determining a Display Order for Values in a Multi-Value Field of an Application Card | |
CN110807028B (zh) | 用于管理存储***的方法、设备和计算机程序产品 | |
US20160103906A1 (en) | Generating and implementing local search engines over large databases | |
JP6788002B2 (ja) | モバイル端末のためのデータ記憶方法及び装置 | |
EP2972970B1 (en) | Locale-based sorting on mobile devices | |
US8527478B1 (en) | Handling bulk and incremental updates while maintaining consistency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |