CN111339381A - 一种字典序分区双数组的字符串批量查询方法及装置 - Google Patents
一种字典序分区双数组的字符串批量查询方法及装置 Download PDFInfo
- Publication number
- CN111339381A CN111339381A CN202010151192.1A CN202010151192A CN111339381A CN 111339381 A CN111339381 A CN 111339381A CN 202010151192 A CN202010151192 A CN 202010151192A CN 111339381 A CN111339381 A CN 111339381A
- Authority
- CN
- China
- Prior art keywords
- partition
- character string
- query
- character
- array
- 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.)
- Pending
Links
- 238000005192 partition Methods 0.000 title claims abstract description 97
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000003491 array Methods 0.000 title abstract description 11
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 230000001174 ascending effect Effects 0.000 claims abstract description 13
- 238000007781 pre-processing Methods 0.000 claims abstract description 9
- 230000007704 transition Effects 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 241000218645 Cedrus Species 0.000 description 3
- 235000012791 bagels Nutrition 0.000 description 2
- 125000002704 decyl group Chemical group [H]C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])* 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 241001590997 Moolgarda engeli Species 0.000 description 1
- 101100314144 Mus musculus Tnip1 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
Images
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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- 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/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种字典序分区双数组字符串批量查询方法及装置,属于信息检索领域。包括:字符串数据集预处理步骤,对字符串数据集和查询集按照字典序升序排序并统计数据集中字符串的总长度;索引创建步骤,对字符串按照全部字符串长度划分成K个分区并创建分区映射表,然后为每个分区创建独立的双数组索引结构;检索步骤,对一批待查询的字典序有序的查询集,根据查询集构建分区查询表确定各查询的分区号并在相应分区内进行检索。本发明通过长度分区创建和检索双数组,使分区负载更为均衡,进而提高双数组的创建效率。
Description
技术领域
本发明一种字典序分区双数组的字符串批量查询方法及装置,具体涉及一种对字符串数据集进行排序分区并建立分区双数组索引的方法及装置,属于信息检索领域。
背景技术
字符串存储和查询是很多领域的基本问题,提高字符串存储和查询效率有着较为重要的意义,而Trie是字符串存储和查询最为常见的结构,但对常见的trie的矩阵存储和链式存储来说,均难以兼顾查询性能和存储空间开销之间的矛盾。Aoe等人提出的DA在查询性能和存储空间之间取得了较好的平衡,该结构基于BASE和CHECK两个一维整型数组来压缩存储字符串,空间效率较高;此外,其在检索某节点的特定孩子时只需要执行简单的加操作,因此同样具有较好的查询性能。
随着字符串数量的增加,双数组的空间开销和索引创建开销也会增大,为了解决上述问题,许多学者针对DA的优化进行了研究,例如Yata等人提出了一种压缩的双数组索引结构,这种结果将字符信息存储在CHECK数组中来提升空间效率,Kanda等人通过将双数组分段并为每段设计对应的线性函数来确定BASE值,并针对动态双数组索引构建时间和空间效率不高的问题,通过为空白位置链表来快速寻找可***位置等优化措施来提升效率。
上述方法多致力于降低空间开销,而忽视了索引创建效率。提高索引创建效率可提高索引的可管理性,这对在大规模数据集上创建索引非常重要。此外,对连接类操作而言,同样重要,因为索引创建时间需计入到总操作用时中。于是又有学者对于如何提升其创建效率进行了研究,提出了一种基于首字母分区的双数组索引结构,这种结构根据字符串的首字母将不同首字母的字符串划分到不同的分区中,从而降低因为不同前缀而造成的冲突,但是这种分区方法中每个分区的字符的数量并不均衡,负载均衡上没有做到最好。
发明内容
本发明提供了一种字典序分区双数组的字符串批量查询方法及装置,根据数据集字符串的长度进行分区并为每个分区创建DA索引结构,能够有效降低传统DA索引创建过程中冲突的数量以及解决冲突的开销,减少索引的创建时间,从而提高DA索引结构创建的效率。
本发明采用的技术方案是:一种字典序分区双数组的字符串批量查询方法,其特征在于,包括如下步骤:
字符串数据集预处理步骤:将字符串数据集按字典序升序排序并统计数据集中所有字符串的总长度L;将查询集同样按字典序升序排序;
索引创建步骤:按照全部字符串长度将数据集分区并创建分区映射表PMT,为每个分区创建分区双数组DA索引;
检索步骤:对待查询的字典序有序的一批字符串,根据分区映射表在相应的DA上进行检索,获取查询结果。
所述的字符串数据集预处理步骤分为三个步骤:
步骤110:将字符串数据集按字典序升序排序;
步骤120:累加并计算所有字符串的总长度L;
步骤130:将查询集按字典序升序排序。
所述的索引创建步骤按如下步骤执行:
步骤210:给定分区个数K,按照数据集中字符串总长度将数据集均衡地划分为K个分区,每个分区字符串总长度近似等于[L/K];如果分区线从某个字符串内部划过,将该字符串划分成两个临时子串用于确定该字符串所属分区,比较两个临时子串的大小,将该字符串划分到临时子串较大的分区。
步骤220:构建长度为K-1的分区映射表PMT,表中第i个位置(i=0,1,……,k-2)存储第i+1个分区的第一个字符串;
步骤230:为每个分区创建分区双数组索引结构,对当前读取的字符串s,将其特定长度的前缀中的字符***到对应的分区双数组中,其中特定长度的前缀指的是s中能与任何其他字符相区别的前缀,对于***字符串s中的某个字符“c”,从状态x转换到状态y,其状态转移公式为:
BASE[x]+CODE[c]=y (1)
CHECK[y]=x (2)
其中,用BASE和CHECK来存储字符串的前缀部分,BASE和CHECK为存储字符的数组名,“x”和“y”为数组下标,用TAIL数组来存储字符串的剩余部分,CODE[s]表示字符s的数值编码,将字符“#”,“a”,“b”,“c”···“z”的编码值设置为1,2,3,4···27。
所述的检索步骤按如下步骤执行:
步骤310:将一系列按字典序有序排序的查询字符串Q组成一个查询池;
步骤320:依序从查询池中读取字符串,通过二分查找在PMT中确定字符串所在的分区号;
步骤330:根据获取的分区号,在对应分区内执行DA的查询算法,并返回查询结果;
步骤340:取Q中下一个字符串;
步骤350:迭代执行步骤320-340,直至查询池字符串为空。
一种字典序分区双数组的字符串批量查询装置,采用所述的字典序分区双数组的字符串批量查询方法,包括:
字符串数据集预处理模块:对字符串数据集进行升序排序并统计所有字符串的长度;
索引创建装置:对字符串按照字符串长度根据分区数量K划分成K个分区并根据分区位置构建分区映射表并为每个分区创建独立的双数组索引结构;
检索装置:对待查询的字典序有序的一批字符串,根据分区映射表在相应的DA上进行检索,获取查询结果。
本发明的有益效果是:相对于传统的双数组,本发明通过进行排序和分区,可有效提升双数组索引的创建效率。
附图说明
图1是基于分区双数组的索引查询功能模块图;
图2是字符串集合T的分区映射表;
图3是双数组Trie的初始化图;
图4***“cabin”后的reducedtrie以及双数组示意图;
图5***“cache”后的reducedtrie以及双数组示意图;
图6分区S1创建之后的reducedtrie以及双数组示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细描述。
实施例1:一种字典序分区双数组的字符串批量查询方法,包括如下步骤:
字符串数据集预处理步骤,对字符串数据集按字典序升序排序,以字符串集合T={“abcd”,“abcfge”,“cabin”,“cache”,“beach”,“daic”,“daecha”,“eaghe”,“bedam”,“echtes”,“edge”,“delas”,“cedar”,“bagel”,“adapt”}为例,设置分区参数K为5,为了区分“ab”和“abc”这样的字符串,在每个字符串后面加上“#”作为标记,则集合T1={“abcd#”,“abcfge#”,“cabin#”,“cache#”,“beach#”,“daic#”,“daecha#”,“eaghe#”,“bedam#”,“echtes#”,“edge#”,“delas#”,“cedar#”,“bagel#”,“adapt#”},对字符串集合T1进行字典序排序后得到T2={“abcd#”,“abcfge#”,“adapt#”,“bagel#”,“beach#”,“bedam#”,“cabin#”,“cache#”,“cedar#”,“daecha#”,“daic#”,“delas#”,“eaghe#”,“echtes#”,“edgs#”}。
统计所有字符串的长度为L=75,根据分区个数K得到每个分区的长度应为L/K=15就可以将集合T2划分为5个分区A1={“abcd#”,“abcfge#”,“adapt#”},A2={“bagel#”,“beach#”,“bedam#”},A3={“cabin#”,“cache#”,“cedar#”},A4={“daecha#”,“daic#”,“delas#”},A5={“eaghe#”,“echtes#”,“edge#”},此时构建的分区的映射表如图2所示。
在DA索引结构中,建立了两个一维整数数组BASE和CHECK来存储每个字符串能够相互区分的前缀部分(例如字符串“cabi#”和字符串“cachea#”,只需要在BASE和CHECK中存储前缀“cab”和“cac”就能使这两个字符串区分开来),其余部分存储在TAIL数组中。BASE数组中存储的是状态转移的基值,CHECK数组中存储校验值,用于检验状态转移的正确性。在DA索引结构中,一个字符的状态转移需要满足以下两个关系式:
BASE[s]+CODE[c]=t(1)
CHECK[t]=s(2)
其中,用BASE和CHECK来存储字符串的前缀部分,BASE和CHECK为存储字符的数组名,“x”和“y”为数组下标,用TAIL数组来存储字符串的剩余部分,CODE[s]表示字符s的数值编码,本发明中将字符“#”,“a”,“b”,“c”···“z”的编码值设置为1,2,3,4···27。
对于数组BASE和CHECK中存储的值,当下标i中的BASE[i]和CHECK[i]中的值为0时表明该位置为空,该位置可以***字符,BASE[i]中的值为负数时表明该字符串前缀部分索引结束,该负值的绝对值指向该字符串的后缀部分在TAIL数组中的位置。
分区DA索引结构的创建,将字符串“cabin#”,“cache#”***到二号分区。
下面详细说明字符串集合A2的双数组Trie创建过程。
双数组Trie的初始状态如图3所示,其中POS的值表明当前向TAIL数组中***字符的位置。
***字符串“cabin#”到2号分区,按一下步骤执行:
步骤A1:从BASE数组位置1开始字符的***,字符“c”的编码值为4,根据公式(1)和(2):
BASE[1]+“c”=BASE[1]+4=1+4=5,CHECK[5]=0≠1
步骤A2:CHECK值为0表明要将剩余的字符串***到TAIL数组中,此时BASE数组中仅存储了字符“c”,将剩余部分“abi#”从POS=1处开始依次***到TAIL数组中。
步骤A3:字符串“cabi#”***完成,更新数组中的值
BASE[5]←-POS=-1
表明字符串的剩余部分在TAIL数组中开始***的位置,再更新POS的值
POS=1+length(“abin#”)=1+5=6
下一个需要***的字符串的剩余部分在TAIL数组中的起始位置
CHECK[5]=1
表明节点5是从节点1跳转过来的,此时构造的reducetrie以及其DA索引结构如图4所示
接着***字符串“cachea#”:
步骤B1:从BASE数组位置1开始进行索引的创建,字符“c”的编码值为4,根据公式(1)和(2):
BASE[1]+“c”=BASE[1]+4=1+4=5,CHECK[5]=1
CHECK值非0说明字符“c”已经存储在数组中。
步骤B2:需要索引更多的字符到双数组中以区分这两个字符串,那么结点4就要作为状态转移的基值,而此时BASE[4]=-1,表明查询已经结束。将当前BASE[4]的值存在一个临时变量TEMP中,访问X_CHECK(LIST)(X_CHECK(LIST)函数是返回最小的整数q,q满足q>0并且CHECK[q+c]=0即找到一个空位置,c是LIST里的字符,q的值总是从1开始递增)函数并为BASE[4]寻找一个新的基值。
TEMP←BASE[4]=-1
步骤B3:为BASE[4]寻找一个新的基值使得字符“a”能够***空位置,“a”的编码值为2,接着访问X_CHECK(LIST)函数,从q=1开始
CHECK[q+“a”]=CHECK[1+2]=CHECK[3]=0
表明该位置可用,且q的值为1,即
BASE[5]=1
步骤B4:将字符“b”,“c”分别***数组中以区分“cabi”,“cachea”,访问X_CHECK(LIST)函数找到空位置***字符“b”,“c”,即为BASE[3]寻找一个合适的基值进行状态的转移:
CHECK[q+“b”]=CHECK[1+3]=CHECK[4]=0,q=1可用
因为字符“b”和“c”需要从同一个状态转移过来,所以继续用q=1尝试能不能存储字符“c”,即
CHECK[1+“c”]=CHECK[1+4]=CHECK[5]≠0,q=1不可用
继续尝试q=2
CHECk[2+“b”]=CHECK[2+3]=5≠0,q=2不可用
继续尝试q=3
CHECK[3+“b”]=CHECK[3+3]=CHECK[6]=0,q=3可用
CHECk[3+“c”]=CHECK[3+4]=CHECK[7]=0,q=3可用,则
BASE[3]=3
步骤B5:将字符“b”***到双数组中,根据公式(1)和(2):
BASE[3]+“b”=3+3=6
CHECK[6]=3
BASE[6]←TEMP=-1
将字符“c”***到双数组中,根据公式(1)和(2):
BASE[3]+“c”=3+4=7
CHECH[7]=3
BASE[7]←-POS=-6
此时,字符串“cabi”和“cachea”的前缀部分***完毕
步骤B6:更新POS的值
POS=6+length(“hea#”)=9
此时构造的reducetrie和双数组如图5所示
集合S1创建DA索引结构的过程参照上述集合S2创建DA的过程,集合S1创建的reducedtrie和双数组如图6所示。
以字符串集合Q={“abade”,“abace”,“bacde”,“caden”,“cache”,“dead”,“echo”}为例说明DA索引结构的检索过程,根据分区映射表如图2所示。查询分区查询表可知字符串“cache”在四号分区内查找
步骤D1:从BASE[1]开始检索。
步骤D2:检索第一个字符“c”
BASE[1]+“c”=1+4=5且CHECK[5]=1
步骤D3:检索第二个字符“a”
BASE[5]+“a”=1+2=3且CHECK[3]=5
步骤D4:查询第三个字符“c”
BASE[3]+“c”=3+4=7且CHECK[7]=3
BASE[7]=-6<0
检索到负值表明该字符串在BASE和CHECK数组中的检索结束,继续在TAIL数组中即TAIL[6]开始检索到该字符串的剩余部分“he#”。
字典序分区双数组字符串批量查询装置,包括:
字符串数据集预处理模块:对字符串数据集按照字典序升序排序并统计所有字符串的长度;
索引创建装置:对字符串按照字符串长度根据分区数量N划分成N个分区并根据分区位置构建分区映射表,并为每个分区创建独立的DA索引结构;
检索装置:输入需要检索的字符串,根据分区映射表构建分区查询表在相应分区下的DA索引结构上进行检索。
以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (5)
1.一种字典序分区双数组的字符串批量查询方法,其特征在于,包括如下步骤:
字符串数据集预处理步骤:将字符串数据集按字典序升序排序并统计数据集中所有字符串的总长度L;将查询集同样按字典序升序排序;
索引创建步骤:按照全部字符串长度将数据集分区并创建分区映射表PMT,为每个分区创建分区双数组DA索引;
检索步骤:对待查询的字典序有序的一批字符串,根据分区映射表在相应的DA上进行检索,获取查询结果。
2.根据权利要求1所述的字典序分区双数组的字符串批量查询方法,其特征在于:所述的字符串数据集预处理步骤分为三个步骤:
步骤110:将字符串数据集按字典序升序排序;
步骤120:累加并计算所有字符串的总长度L;
步骤130:将查询集按字典序升序排序。
3.根据权利要求1所述的字典序分区双数组的字符串批量查询方法,其特征在于:所述的索引创建步骤按如下步骤执行:
步骤210:给定分区个数K,按照数据集中字符串总长度将数据集均衡地划分为K个分区,每个分区字符串总长度近似等于[L/K];如果分区线从某个字符串内部划过,将该字符串划分成两个临时子串用于确定该字符串所属分区,比较两个临时子串的大小,将该字符串划分到临时子串较大的分区;
步骤220:构建长度为K-1的分区映射表PMT,表中第i个位置(i=0,1,……,k-2)存储第i+1个分区的第一个字符串;
步骤230:为每个分区创建分区双数组索引结构,对当前读取的字符串s,将其特定长度的前缀中的字符***到对应的分区双数组中,其中特定长度的前缀指的是s中能与任何其他字符相区别的前缀,对于***字符串s中的某个字符“c”,从状态x转换到状态y,其状态转移公式为:
BASE[x]+CODE[c]=y (1)
CHECK[y]=x (2)
其中,用BASE和CHECK来存储字符串的前缀部分,BASE和CHECK为存储字符的数组名,“x”和“y”为数组下标,用TAIL数组来存储字符串的剩余部分,CODE[s]表示字符s的数值编码,将字符“#”,“a”,“b”,“c”···“z”的编码值设置为1,2,3,4···27。
4.根据权利要求1所述的字典序分区双数组的字符串批量查询方法,其特征在于,所述的检索步骤按如下步骤执行:
步骤310:将一系列按字典序有序排序的查询字符串Q组成一个查询池;
步骤320:依序从查询池中读取字符串,通过二分查找在PMT中确定字符串所在的分区号;
步骤330:根据获取的分区号,在对应分区内执行DA的查询算法,并返回查询结果;
步骤340:取Q中下一个字符串;
步骤350:迭代执行步骤320-340,直至查询池字符串为空。
5.一种字典序分区双数组的字符串批量查询装置,其特征在于:采用权利要求1-4任一项所述的方法,包括:
字符串数据集预处理模块:对字符串数据集进行升序排序并统计所有字符串的长度;
索引创建装置:对字符串按照字符串长度根据分区数量K划分成K个分区并根据分区位置构建分区映射表并为每个分区创建独立的双数组索引结构;
检索装置:对待查询的字典序有序的一批字符串,根据分区映射表在相应的DA上进行检索,获取查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010151192.1A CN111339381A (zh) | 2020-03-06 | 2020-03-06 | 一种字典序分区双数组的字符串批量查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010151192.1A CN111339381A (zh) | 2020-03-06 | 2020-03-06 | 一种字典序分区双数组的字符串批量查询方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111339381A true CN111339381A (zh) | 2020-06-26 |
Family
ID=71182282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010151192.1A Pending CN111339381A (zh) | 2020-03-06 | 2020-03-06 | 一种字典序分区双数组的字符串批量查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111339381A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460765A (zh) * | 2020-03-30 | 2020-07-28 | 掌阅科技股份有限公司 | 电子书籍标注处理方法、电子设备及存储介质 |
CN116303405A (zh) * | 2023-05-12 | 2023-06-23 | 深圳竹云科技股份有限公司 | 一种数据查重方法、装置、计算机设备 |
CN117289872A (zh) * | 2023-10-10 | 2023-12-26 | 北京三博脑科医院有限公司 | 一种计算机大数据存储*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577394A (zh) * | 2012-07-31 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种基于双数组搜索树的机器翻译方法和装置 |
CN108509505A (zh) * | 2018-03-05 | 2018-09-07 | 昆明理工大学 | 一种基于分区双数组Trie的字符串检索方法及装置 |
CN110457531A (zh) * | 2019-07-23 | 2019-11-15 | 昆明理工大学 | 一种基于OpenMP的并行字符串查询方法 |
-
2020
- 2020-03-06 CN CN202010151192.1A patent/CN111339381A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577394A (zh) * | 2012-07-31 | 2014-02-12 | 阿里巴巴集团控股有限公司 | 一种基于双数组搜索树的机器翻译方法和装置 |
CN108509505A (zh) * | 2018-03-05 | 2018-09-07 | 昆明理工大学 | 一种基于分区双数组Trie的字符串检索方法及装置 |
CN110457531A (zh) * | 2019-07-23 | 2019-11-15 | 昆明理工大学 | 一种基于OpenMP的并行字符串查询方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460765A (zh) * | 2020-03-30 | 2020-07-28 | 掌阅科技股份有限公司 | 电子书籍标注处理方法、电子设备及存储介质 |
CN116303405A (zh) * | 2023-05-12 | 2023-06-23 | 深圳竹云科技股份有限公司 | 一种数据查重方法、装置、计算机设备 |
CN116303405B (zh) * | 2023-05-12 | 2023-11-10 | 深圳竹云科技股份有限公司 | 一种数据查重方法、装置、计算机设备 |
CN117289872A (zh) * | 2023-10-10 | 2023-12-26 | 北京三博脑科医院有限公司 | 一种计算机大数据存储*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111339381A (zh) | 一种字典序分区双数组的字符串批量查询方法及装置 | |
CN108509505B (zh) | 一种基于分区双数组Trie的字符串检索方法及装置 | |
Sadakane | Compressed suffix trees with full functionality | |
JP3771271B2 (ja) | コンパクト0完全木における順序付けられたキーの集まりの記憶と検索のための装置及び方法 | |
US6606638B1 (en) | Value-instance-connectivity computer-implemented database | |
US7231387B2 (en) | Process for performing logical combinations | |
Hon et al. | Space-efficient framework for top-k string retrieval problems | |
US8032495B2 (en) | Index compression | |
CN111581215B (zh) | 数组树数据储存方法、快速查找方法及可读储存介质 | |
KR20010064977A (ko) | 시계열 데이터베이스에서 윈도우 구성의 이원성을 사용한 서브시퀀스 매칭방법 | |
CN105335481A (zh) | 一种大规模字符串文本的后缀索引构造方法及装置 | |
CN1776688A (zh) | 一种字符数据的检索方法 | |
Eghbali et al. | Online nearest neighbor search in binary space | |
CN110457531B (zh) | 一种基于OpenMP的并行字符串查询方法 | |
CN109885570A (zh) | 一种辅助索引结合散列表的多维范围查询方法 | |
CN101944086A (zh) | 全字索引词典 | |
EP1107126A2 (en) | A fast, efficient, adaptive, hybrid tree | |
Hon et al. | Compressed index for dictionary matching | |
WO2011073680A1 (en) | Improvements relating to hash tables | |
US8166043B2 (en) | Bit strings search apparatus, search method, and program | |
US20070282816A1 (en) | Method and structure for string partial search | |
Gupta et al. | A framework for dynamizing succinct data structures | |
Feigenblat et al. | Linear time succinct indexable dictionary construction with applications | |
CN108509618A (zh) | 一种基于空间填充曲线的大数据多维数据索引方法 | |
KR100472949B1 (ko) | 시계열 데이터베이스에서 서브시퀀스 매칭의 인덱스검색방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200626 |
|
RJ01 | Rejection of invention patent application after publication |