专利汇可以提供一种从职位数据库中快速筛选职位的方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种从职位 数据库 中快速筛选职位的方法,该方法涉及到职位数据库、职位索引生成器、职位检索 服务器 和Web客户端,所述职位索引生成器通过开放数据库互连连接职位数据库,职位索引生成器根据职位数据库中的职位数据以基于后缀数组的索引结构生成索引文件,并将生成的索引文件分发至职位检索服务器,职位检索服务器通过套接字与Web客户端相连接,Web客户端将查询 请求 通过套接字发送给职位检索服务器,职位检索服务器检索索引文件,并将检索的结果通过套接字返回Web客户端进行显示。本发明能够实现职位数据库内所有职位快速有效的检索,在保证检索准确性的前提下大幅提高了检索速度。,下面是一种从职位数据库中快速筛选职位的方法专利的具体信息内容。
1.一种从职位数据库中快速筛选职位的方法,其特征在于,该方法中涉及到职位数据库(2)、职位索引生成器(3)、职位检索服务器(4)和Web客户端(5),所述职位索引生成器(3)通过开放数据库互连连接职位数据库(2),职位索引生成器(3)根据职位数据库(2)中的职位数据以基于后缀数组的索引结构生成索引文件,并将生成的索引文件分发至职位检索服务器(4),职位检索服务器(4)通过套接字与Web客户端(5)相连接,Web客户端(5)将查询请求通过套接字发送给职位检索服务器(4),职位检索服务器(4)检索索引文件,并将检索的结果通过套接字返回Web客户端(5)进行显示;
所述职位索引生成器(3)的工作流程为:首先进行职位索引生成器初始化过程模块(6),初始化后进行职位数据库连接开启过程模块(7),通过开放数据库互连进行职位数据库连接,并从职位数据库读取职位数据,进行索引生成过程模块(8)后生成索引文件,通过分发过程模块(16)将索引文件分发给各职位检索服务器,之后进行职位数据库连接关闭过程模块(17)关闭职位数据库连接,完成职位索引生成器流程,所述索引生成过程模块(8)包括索引状态区生成过程模块(9),前向索引生成过程模块(10),后向索引生成过程模块(11)和头信息生成过程模块(15),所述后向索引生成过程模块(11)包括以下三个步骤:
第一步:后缀数组生成过程模块(12):所述后缀数组获取过程为:
a、假设原始文本为字符串S,长度为n,字符序号从0开始编,从第i个字符到第n-1个字符的子序列即字符串S为第i个后缀,其中,0≤i
d、按后缀的排序结果将每个后缀的后缀编号保存为后缀数组SA,即后缀数组;
第二步:BWT变换过程模块(13):按后缀数组SA的顺序取后缀在原始文本字符串S中的前一个字符,即原始文本字符串S进行BWT变换后的文本字符串S_BWT,利用S_BWT能快速查询关键字在后缀数组SA中的区间,该区间对应的后缀均以该关键字开始,查询过程如下:
a、假设当前的检索词为abcd,字符d开头的后缀在SA中的区间为[u, v),该区间可以预先计算并记录,若能求解字符串cd在SA中的区间[u’, v’),即可通过迭代求解字符串abcd在SA中的区间,
b、假设以字符c开头的后缀在SA中的区间为[p, t),该区间可以预先计算并记录,c、第一个以字符串cd开头的后缀在SA中的起始位置可以表示为u’=p+∑N(x),其中,x表示任意编码比d小的字符串,即比SA[u]对应的字符串小的字符串,∑N(x)表示以x开始的后缀个数求和,∑N(x)等于S_BWT的[0, u)区间中字符c出现的个数,∑N(x)可以通过Wavelet Matrix的存储结构进行快速计算,即可求解第一个以字符串cd开头的后缀在SA中的起始位置u’=p+∑N(x),
d、同样的,可以求解第一个不以字符串cd开头的后缀在SA区间[u’, +∞)中的起始位置v’,由于第一个不以字符串d开头的后缀在SA中的区间[u, +∞)的起始位置为v,只要求解S_BWT在[0, v)区间中字符c出现的个数,即可求解第一个不以字符串cd开头的后缀在SA区间[u’, +∞)中的起始位置v’= p+∑N(y),其中,y表示任意编码比SA[v]对应的字符串小的字符串,∑N(y)表示以y开头的后缀个数求和,
e、重复上述过程,可以迭代求解字符串abcd在SA中的区间,同理,通过迭代可快速求解任意字符串在SA中的区间;
第三步:Wavelet Matrix结构生成过程模块(14):所述Wavelet Matrix结构是将字母表中字符编码按顺序排列后,递归的将低半部分编码为0,高半部分编码为1,并将每一层分为左右两部分,使得0分支放在一起,1分支放在一起,形成一个编码二叉树,利用Wavelet Matrix结构可以快速计算出字符数组中从0位置到任意位置某个字符出现的次数,通过在BWT变换后的文本字符串S_BWT中计算某个字符出现的次数,可以实现关键字在后缀数组SA中区间的快速查询,通过Wavelet Matrix结构实现快速查询过程如下:
a、定义Wavelet Matrix结构第一层的一个节点是{ null | * },第二层的2个节点是{ 0* | 1* },第三层的4个节点是{ 00*,10* | 01*,11* },第四层的8个节点是{ 000*,
100*,010*,110* | 001*,101*,011*,111* },依此类推;其中,‘*’表示只记录比特,即第一层的{ * }为原文本中的每个字符编码的第1个比特取出来组成的数组,‘01*’表示原文本中以‘01’开头的所有字符的第3个比特取出来组成的数组,
b、Wavelet Matrix结构中,下一层的左半部分是上一层的全部“0-子分类”,下一层的右半部分是上一层的全部“1-子分类”,每半部分的节点排序规则为:每半部分的每个节点的编码顺序反转后按二进制从小到大的顺序进行排列,得到该半部分的节点排序,c、假设每个字符编码为5位,则最后一层每个节点的编码顺序为: { 00000,10000,
01000,11000,00100,10100,01100,11100,00010,10010,01010,11010,00110,10110,
01110,11110 | 00001,10001,01001,11001,00101,10101,01101,11101,00011,10011,
01011,11011,00111,10111,01111,11111},只需存储起始位置和每个编码相较于起始位置的偏移,以offset表示,即offset(00000)=0,offset(10000) =count(00000) ,offset (01000) = count(00000)+count(10000),依此类推,
d、假设每个字符编码为5位,将每一层的全部节点组成一个比特数组,分别定义为 Layer1,Layer2,Layer3,Layer4,Layer5 分别计算每一层左半部分的比特数,并定义为 LeftCount1,LeftCount2,LeftCount3,LeftCount4,LeftCount5,
e、定义LeftAdd为某节点左侧的所有节点编码计数,即LeftAdd(01*)表示01*左边的所有节点编码计数,若该节点在最后一层,则为该节点偏移,即LeftAdd(01000*) = offset (01000),
f、定义rank0(A,<=n) 表示比特数组A中前n个比特中‘0’的个数,rank1(A,<=n) 表示比特数组A中前n个比特中‘1’的个数,则成立rank0(A,<=n) + rank1(A,<=n) = n,g、定义count(C,<=m) 表示文本前 m 个字符中属于字符编码C的字符的个数,
h、假设待查找的字符编码为‘01101’,则求解count(01101,<=m)可得到该字符在文本前 m 个字符中出现的次数,下述公式成立:
x1=rank0(Layer1,<=m)=count(0*,<=m);
x2=rank1(Layer2,<=x1)+LeftCount3=LeftAdd(01*)+ count(01*,<=m);
x3=rank1(Layer3,<=x2)+LeftCount4=LeftAdd(011*)+ count(011*,<=m);
x4=rank0(Layer4,<=x3) = LeftAdd(0110*) + count(0110*,<=m);
x5=rank1(Layer5,<=x4)+LeftCount6=LeftAdd(01101*)+ count(01101*,<=m) =
offset(01101) + count(01101,<=m),
其中,当该比特为‘1’时,需要加相应的左半部分比特数,当该比特为‘0’时,则不需要加左半部分比特数,由于rank0(A,<=n)+ rank1(A,<=n) = n,可通过求解rank0(A,<=n)或rank1(A,<=n)迭代快速求解x1 x5,偏移offset(01101)可以预先计算,因此可以快速求解~
count(01101,<=m) = x5 - offset(01101),从而实现对任意字符在任意位置区间中出现次数的求解;
所述职位数据库(2)采用MySQL5.5.20,所述职位检索服务器(4)的工作流程图为:所述职位检索服务器(4)包括三个线程:主线程模块(20)、搜索线程模块(21)和更新线程模块(22),首先进行职位检索服务器初始化过程模块(18),之后通过索引加载过程模块(19)加载索引文件,加载索引文件后创建并启动主线程模块(20)、搜索线程模块(21)和更新线程模块(22),主线程模块(20)通过套接字在指定端口监听Web客户端的查询请求判断模块(23),若查询请求判断模块(23)的判断结果为“是”,则将查询请求判断模块(23)转给搜索线程模块(21)并继续监听,若查询请求判断模块(23)的判断结果为“否”,则继续监听;
所述搜索线程模块(21)接收Web客户端的查询请求后工作过程包括以下步骤:
a、通过字符串解析过程模块(24)解析查询字符串,
b、通过字符串查询过程模块(25)根据查询字符串中的查询字段和关键字,查找相应的字段,得到匹配的文档列表集合,
c、通过文档列表生成过程模块(26)对文档列表集合中每个文档过滤其前项索引,得到最终符合条件的文档列表集合,
d、通过相关度动态计算过程模块(27)对符合条件的文档列表集合中的文档进行动态相关度计算,所述相关度动态计算是指在对职位数据的检索结果进行评分时,采用包含字段评分和首发时间的动态因素的评分策略,对检索结果进行即时的相关度计算,评分策略包括字段评分和首发时间评分,所述字段评分是根据关键字检索结果所在的字段赋予不同的分数,所述字段包括:职位名、公司名、职位描述,职位名分数高于公司名分数,公司名分数高于职位描述分数,采用0 255的256个整数值作为字段评分的评分区间;所述首发时间~
评分是根据职位的首次发布时间赋予不同的分数,计算职位首发时间与当前时间的时间差,距离当前时间越近,即时间差越小,分数越高,采用0 255的256个整数值作为职位首发~
时间的评分区间,通过分数列表排序可快速实现职位首发时间动态评分的排序,
e、通过分数列表排序过程模块(28)快速实现相关度评分的排序,生成结果集合,所述分数列表排序是指在对职位进行评分时,将职位按照其字段评分和首发时间评分归并到对应的评分区间0 65535的65536个整数值,生成评分区间内任一分数值对应的所有职位集~
合,由于职位数据库中的职位数据按照发布时间进行降序排列,并以降序读取,因此任一分数值对应的所有职位集合内部都是有序的,即该分数值对应的职位集合内部按发布时间降序排列,距离当前时间越近顺序越靠前,根据分数列表的性质,只需要按照分数从高到低、在同一分数内部从前到后取出一定数量的结果即可,从而通过分数列表提高排序速度;
f、根据查询字符串中所需的返回结果数量,通过结果返回过程模块(29)将相应的结果集合以及结果的统计信息返回给Web客户端;
所述更新线程模块(22)监听索引文件的更新请求,若更新请求判断模块(30)的判断结果为“是”,则进行更新并继续监听,若更新请求判断模块(30)的判断结果为“否”,则继续监听;进行更新时,首先通过删除无效索引过程模块(31)删除无效索引,然后通过增量更新索引过程模块(32)对索引块进行增量更新,最后通过清理无效数据过程模块(33)清理现有块中的无效数据;当更新线程模块(22)进行索引更新时,该服务器停止检索服务,在此期间的查询请求将转发到备份服务器进行检索,完成职位检索服务器工作过程。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种汞离子比色传感器及其制备方法和应用 | 2020-05-12 | 709 |
授信会签方法、装置、计算机设备及存储介质 | 2020-05-13 | 581 |
测试方法、装置、存储介质及计算机设备 | 2020-05-13 | 450 |
混淆代码的优化方法及装置、计算设备、存储介质 | 2020-05-12 | 482 |
一种航空非标准化流程智能驱动引擎系统 | 2020-05-08 | 423 |
一种数据集成方法及装置 | 2020-05-08 | 719 |
一种业务流程图构建方法、装置和计算机可读存储介质 | 2020-05-11 | 386 |
一种智慧城市快速应急调度系统 | 2020-05-13 | 728 |
基于大型机的跨平台图形化运行监控方法及装置 | 2020-05-11 | 14 |
一种零编码的应用软件快速构建系统 | 2020-05-11 | 44 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。