CN105447135B - 数据查找方法和装置 - Google Patents

数据查找方法和装置 Download PDF

Info

Publication number
CN105447135B
CN105447135B CN201510808244.7A CN201510808244A CN105447135B CN 105447135 B CN105447135 B CN 105447135B CN 201510808244 A CN201510808244 A CN 201510808244A CN 105447135 B CN105447135 B CN 105447135B
Authority
CN
China
Prior art keywords
rule
data
normal form
disjunctive normal
simple conjunction
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
Application number
CN201510808244.7A
Other languages
English (en)
Other versions
CN105447135A (zh
Inventor
周寅生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruian Technology Co Ltd
Original Assignee
Beijing Ruian Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ruian Technology Co Ltd filed Critical Beijing Ruian Technology Co Ltd
Priority to CN201510808244.7A priority Critical patent/CN105447135B/zh
Publication of CN105447135A publication Critical patent/CN105447135A/zh
Application granted granted Critical
Publication of CN105447135B publication Critical patent/CN105447135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据查找方法和装置。所述方法包括:将查找规则由布尔式规则转换为析取范式规则;将所述析取范式规则分解为多个简单合取式规则;将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据。本发明的技术方案解决了现有数据查找算法中,索引所需要的空间和时间的开销过大,以及规则表达式的布尔运算带来的查找效率低下等问题。

Description

数据查找方法和装置
技术领域
本发明涉及数据处理领域,尤其涉及一种数据查找方法和装置。
背景技术
随着互联网,社交网络,电子商务等的迅猛发展,每天新增的数据量也迅速激增。对于海量数据,我们需要根据预设的规则,通过高速实时的比对,来筛选过滤海量的数据。
在传统的算法实现中,以规则的字段或条件的名称进行哈希储存,映射值不仅要存储字段或条件的取值,还需要存储表达式ID(Identification,身份标识号)及字段或条件在表达式中的位置。在筛选查找数据时,需要对海量数据中每个字段或条件在哈希表中查找,然后根据字段或条件的取值取得所有的表达式ID及位置,进行排序合并等,最后再根据位置进行布尔运算并根据布尔运算的结果确定数据是否命中。
图1为现有技术中传统数据查找的索引表的结构图。如图1所示,哈希表中每个字段有很多的映射值。映射值存储结构为三部分,字段的取值、对应的表达式ID及字段在表达式中的位置、以及指向下一个映射值的指针,指针使数据查找时能遍历字段所有的映射值。例如:当某个数据的取值为A=23和B=34的字段时,需要遍历整个A的映射值找到A=23,遍历整个B的映射值找到B=34。并且需要将A=23和B=34这两个字段各自所在的所有布尔表达式的ID及A、B两字段在表达式中的位置(如<100,1>和<100,2>等)进行合并,再根据位置进行布尔运算进行判断。例如,当数据A=23和B=34代入ID号为100的布尔表达式时表达式结果为True,即为该数据命中ID号为100的布尔表达式。
如上所述,在实现传统的数据查找中,需要记录规则中每个字段或条件的位置信息,增加了索引的时间及空间的开销,且索引和查找都比较复杂,需要先进行多级的查找,在查找完所有规则后,需要找到所有的线索号及位置信息,合并等复杂运算,在合并完成后,还需要进行布尔表达式的运算才能确定是否命中,综合这些因素,现有的算法对空间的消耗极其庞大,不能支持大量的规则,同时当预设的规则数到达一定数量后,查找的性能也变得极为低下。
综上,传统的数据查找算法的主要缺陷在于:索引所占用的空间过大对预设规则数量的限制,不能接受大量的规则,且多级查找占用时间较多,以及筛选过滤时的合并排序及规则表达式的布尔运算带来的查找效率的低下。
发明内容
有鉴于此,本发明实施例提供一种数据查找方法和装置,以解决现有数据查找算法中,索引所需要的空间和时间的开销过大,以及规则表达式的布尔运算带来的查找效率低下的问题。
第一方面,本发明实施例提供了一种数据查找方法,包括:
将查找规则由布尔式规则转换为析取范式规则;
将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规则中包括一个或以逻辑与运算符连接的多个对象,所述对象包括字段或条件;
将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据。
第二方面,本发明实施例提供了一种数据查找装置,包括:
规则转换模块,用于将查找规则由布尔式规则转换为析取范式规则;
规则分解模块,用于将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规则中包括一个或以逻辑与运算符连接的多个对象,所述对象包括字段或条件;
规则筛选模块,用于将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据。
本发明实施例提供的数据查找方法和装置,通过将查找规则由布尔式规则转换为析取范式规则;将所述析取范式规则分解为多个简单合取式规则;获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据的技术手段,只需将数据和简单合取式规则进行比对即可完成数据查找,缩小了索引所占用的时间和空间开销,同时,不再需要经过布尔运算就能判断出数据是否为布尔式查找规则所要查找的数据,提高了查找效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为现有技术中传统数据查找的索引表的结构图;
图2为本发明实施例一提供的一种数据查找方法流程示意图;
图3为本发明实施例二提供的一种数据查找方法流程示意图;
图4为本发明实施例二提供的数据查找方法中使用的比对索引的结构图;
图5为本发明实施例三提供的简单合取式对应的三元组结构示意图;
图6为本发明实施例四提供的一种数据查找装置的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图2为本发明实施例一提供的一种数据查找方法流程示意图。该方法适用于工业、商业等各种搜索引擎对海量数据进行搜索、分类和整理等情况,该方法由具有搜索引擎的装置、终端或者服务器执行,可以采用软件和/或硬件的形式实现。如图2所示,所述数据查找方法包括:
S210、将查找规则由布尔式规则转换为析取范式规则。
对于互联网、社交网路等中的海量数据,有海量的查找规则与其对应,这种数据和查找规则的对应关系使用户能对海量数据进行查找和筛选等操作。而在这种对应关系中下发的查找规则可称为布尔式规则。
布尔式规则具体为一个或者以逻辑运算符号(“逻辑与”、“逻辑或”以及“逻辑非”等)连接的多个对象。在现有技术中,通过将用户依据查找条件设置的布尔式规则与海量数据进行布尔运算,可以实现对数据的查找。布尔运算一般用来判断真假值,当有数据命中布尔式查找规则时,布尔运算结果为真,否则,为假。
在本实施例中,不再使用布尔式规则进行数据查找,而是将布尔式规则首先转换为析取范式规则,之后再将析取范式规则分解为多个简单合取式规则后,基于简单合取式规则完成对数据的查找。
在布尔逻辑中,析取范式是逻辑公式的标准化,它是合取子句的析取,即一个或以逻辑或运算符连接的多个简单合取式。
S220、将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规则中包括一个或以逻辑与运算符连接的多个对象,所述对象包括字段或条件。
简单析取式为有限个对象以逻辑或运算符连接的式子,简单合取式为有限个对象以逻辑与运算符连接的式子。并且由有限个简单合取式构成的析取式称为析取范式,由有限个简单析取式构成的合取式称为合取范式。所以析取范式为有限个简单合取式以逻辑或连接构成的。
本实施例中所述的对象包括字段或条件,例如,字段可以为“在北京工作的男性”,而条件为“年龄大于20岁”。这些字段或条件以逻辑与运算符相连接,就构成了简单合取式。这里的简单合取式规则所要查找的即为与“在北京工作的年龄大于20岁的男性”相匹配的数据。
S230、将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据。
将数据中的每个对象依次与所述各简单合取式规则中的每个对象相比对,观察数据中的对象是否能命中简单合取式规则中的对象。例如,观察数据中字段以及字段的取值是否符合简单合取式规则中的字段或条件的范围。传统比对方法中索引不仅要记录对象所在的布尔表达式的ID,还要记录其在布尔表达式的位置,而本实施例中的比对方法中只需对象与简单合取式规则进行比对,不需要记录其在布尔表达式中的位置,减小了检索所需要的空间和时间。
进一步的,获取命中任一简单合取式规则中包括的全部对象的目标数据作为与所述查找规则对应的查找数据。
因为简单合取式规则是用逻辑与运算符将对象连接起来,所以数据若要命中一简单合取式就要包含此简单合取式中的所有的对象,即数据与此简单合取式中的所有字段取值相同或满足此简单合取式中的所有的条件。那么此数据就为此简单合取式规则所属的查找规则对应的查找数据。此种方法查找数据不需要像传统算法一样在索引后还要通过复杂的布尔运算来判断数据是否命中查找规则。这样节省了筛选数据的时间以及判断所需要的计算空间。
通过将查找规则由布尔式规则转换为析取范式规则;将所述析取范式规则分解为多个简单合取式规则;获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据的技术手段,只需将数据和简单合取式规则进行比对即可完成数据查找,缩小了索引所占用的时间和空间开销,同时,不再需要经过布尔运算就能判断出数据是否为布尔式查找规则所要查找的数据,提高了查找效率。
在上述实施例的基础上,将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对之前,还优选包括:建立所述析取范式规则的比对索引,其中,所述比对索引中包括所述析取范式规则中各简单合取式规则中包括的全部对象;相应的,将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对具体优化为:将数据库中的数据与所述析取范式规则的比对索引进行比对。这样设置的好处是:将对象查找简化为索引查找,提高了数据的查找速度,满足了对数据查找的时效性要求。
实施例二
图3为本发明实施例二提供的一种数据查找方法流程示意图,本实施例在上述实施例的基础上,对数据查找方法进一步进行详细的说明。如图3所示,所述数据查找方法包括:
S301、将查找规则由布尔式规则转换为析取范式规则。
S302、将所述析取范式规则分解为多个简单合取式规则。
S303、为所述析取范式规则中各所述简单合取式规则分配对应的增量标识。
下发的布尔式规则每个布尔式都对应一个唯一的标识,这是查找规则进行查找时的索引的依据。所以若要将布尔式规则最终分为简单合取式规则,为寻找便利可为每个简单合取式规则分配一增量标识。并且为了适用于所有数据的查找,每个简单合取式规则的增量标识都是唯一的,即所有的析取范式规则分解的所有简单合取式规则的增量标识都是独有的。
S304、依次获取所述析取范式规则中包括的一个对象,以及包括所述对象的全部简单合取式规则的增量标识。
S305、根据所述析取范式规则中包括的各对象以及与所述各对象分别对应的增量标识,建立所述比对索引。
S303~S305主要为析取范式规则中所有简单合取式规则建立从其包含的对象到其增量标识的比对索引,并且这些对应关系在数据查找之前全部完成,这样就不必在每次进行查找时再重建索引,节省了索引的时间和空间。且索引中只储存了简单合取式的增量标识,不用储存其所在的布尔式的标识和对象在布尔式中的位置。在传统算法中,布尔式的标识以及对象在布尔式中的位置可以占用八个字节,但在本实施例中的简单合取式的增量标识只占用四个字节,大大节省了索引的空间和时间。图4为本发明实施例二提供的数据查找的比对索引的结构图。图4中的比对索引对比图1中的索引表将字段或条件与增量标识(简称为SID)建立对应关系储存起来,本实施例的比对索引只需要一级查找,且不需储存布尔式规则的ID及字段在布尔式规则的位置,节省索引的空间和时间。
此外,在传统数据查找方法中,因为是按哈希储存法储存的关系索引表,每个对象有不同的取值,必须经过多级查找,先对每个对象的不同取值进行查找,再对不同的对象进行查找,非常浪费时间。本实施例中一个对象对应一种取值,而且对应唯一的简单合取式的增量标识,较容易进行数据的比对查找。
S306、在数据库中依次选取一个目标数据。
S307、将所述目标数据中包括的各数据对象与所述析取范式规则的比对索引中包括的各个索引对象进行对象匹配,并在匹配成功时获取所述比对索引中与所述数据对象对应的全部增量标识,并更新与获取的增量标识对应的匹配成功次数。
将目标数据中的每个数据对象分别在比对索引中进行遍历匹配,当目标数据中没有数据对象被比对索引包含时,那么就没有与该目标数据对应的查找规则。
用目标数据中每个对象在比对索引中进行匹配,一个增量标识被匹配到的次数可能有一次也可能有许多次,该增量标识每被匹配一次,与该增量标识对应的匹配成功次数计数加一。
S308、在目标数据所有对象匹配完成后,将各增量标识的所述匹配成功次数与各增量标识对应的简单合取式规则中包括的对象数进行比较。
S309、判断与一个增量标识对应的所述匹配成功次数和与该增量标识对应的简单合取式规则中包括的对象数是否相同:若是,执行S310;否则,执行S312。
S310、确定所述目标数据命中所述析取范式规则中的一个简单合取式规则中包括的全部对象,执行S311。
一个简单合取式中包含了若干个对象,目标数据中也包含一个或多个对象,若目标数据在比对索引中查找的时候该简单合取式对应的增量标识的匹配成功次数和该简单合取式中包含的对象的个数相同,则说明该目标数据包含了该简单合取式中的所有对象或符合对象的全部取值条件,进而说明该目标数据命中了该简单合取式规则,也即目标数据命中该合取式规则对应的布尔式规则。
S311、获取所述目标数据作为与所述查找规则对应的查找数据,执行S312。
S312、判断当前比对的目标数据是否为数据库中最后一条数据:若是,结束流程;否则,返回S306。
本发明实施例在上述实施例的基础上,为分解后的简单合取式规则分别增量标识,为析取范式规则建立从对象到其对应简单合取式规则的增量标识的比对索引,比对索引中不用记录布尔式的标识和对象在布尔式中的位置,大大节省了索引所占用的空间和时间,可支持更多的查找规则,提高了数据的查找效率。
实施例三
本实施例在上述实施例的基础上,对一种数据查找方法作进一步的限定,使该方法更易执行,并以简单的举例来辅助说明。
例如,在下发的海量查找规则中,某一布尔式规则为A=1&(B=2||C=3),该式转化为析取范式为(A=1&B=2)||(A=1&C=3),转化后可分解为两条简单合取式的规则,(A=1&B=2)和(A=1&C=3),分别为上述两个规则分配增量标识1以及增量标识2,进而分别生成规则1:(A=1&B=2)和规则2:(A=1&C=3)。相应的,可建立如表1所示的比对索引。
表1
A=1 1,2
B=2 1
C=3 2
如表1所示,规则1和规则2中均包括字段A=1,则在比对索引中与A=1对应增量标识为1和2;同理,与字段B=2对应的增量标识为1,与字段C=3对应的增量标识为2。
在本实施例中,在为析取范式规则建立比对索引之后,还包括:
为所述析取范式规则中各所述简单合取式规则建立三元组数据,其中,所述三元组数据中包括:第一元素、第二元素以及第三元素,第一元素为简单合取式规则的增量标识、第二元素为简单合取式规则中包括的对象数目,第三元素为与简单合取式规则对应的布尔式规则的标识。
每个简单合取式对应的三元组也是在数据查找之前储存好的,第一元素主要用于很容易的区别每个简单合取式规则,第二元素记录了其对应的简单合取式规则内包含的对象个数,其目的是在计算完索引中增量标识出现的次数后方便与简单合取式规则中包含的对象数目进行比对。第三元素记录简单合取式对应布尔式的标识,便于得知数据命中的原查找规则。如图5所示,图5为本发明实施例三提供的简单合取式对应的三元组结构示意图,第一元素为简单合取式的增量标识SID。
对上面分解后的简单合取式规则1和2分配一个增量标识即SID,这样SID、简单合取式中字段个数和原布尔表达示的标识(用XXXX表示)就组成一个三元组,规则1的三元组为(1,2,XXXX),规则2的三元组为(2,2,XXXX)。
相应的,在对象匹配完成后,将各增量标识的所述匹配成功次数与各增量标识对应的简单合取式规则中包括的对象数进行比较具体包括:
在对象匹配完成后,如果更新了目标增量标识对应的目标匹配成功次数,则获取以所述目标增量标识作为第一元素的目标三元组数据;
将所述目标匹配成功次数与所述目标三元组数据中的第二元素进行比较,如果二者相同,则确定所述目标数据命中所述析取范式规则中的一个简单合取式规则中包括的全部对象;其中,所述析取范式规则与所述目标三元组数据中的第三元素对应的布尔式规则相对应。
示例性的,若目标数据为(A=1&B=2&D=4),当A=1在如图1所示的比对索引中匹配完毕后,获取增量标识1和2。则增量标识1和2的匹配成功次数分别记为1,当B=2匹配完毕后,获取增量标识1,增量标识1的匹配成功次数累加为2,当D=4匹配完毕后,没有对应的增量标识,则没有匹配成功次数的累加,所以获得增量标识1的匹配成功次数为2,增量标识2的匹配成功次数为1。
将所述的匹配成功次数与该三元组数据中的第二元素进行比较,若二者相同,则确定该增量标识的出现次数和与该增量标识对应的目标简单合取式规则中包括的对象数相同。
若增量标识的匹配成功次数和该增量标识对应的目标简单合取式规则中包含的对象数相同,说明目标数据包含简单合取式规则中的所有字段并满足所有的条件,即该目标数据命中该增量标识对应的简单合取式规则。
由上述举例得知增量标识1的匹配成功次数为2,增量标识对应的简单合取式规则中的对象个数为2,则说明目标数据包含了规则1中的所有字段,目标数据命中了规则1,即命中了规则1所属的查找规则A=1&(B=2||C=3)。虽然增量标识2的匹配成功次数为1,该目标数据没有命中规则2,但只要命中规则1和2中的任一个规则,则目标数据命中了查找规则A=1&(B=2||C=3)。
本发明实施例三提供的一种数据查找方法,在上述实施例的基础上,对每个简单合取式规则建立对应的包括增量标识,其包括的对象个数和其所属的布尔式规则标识的三元组,方便对所述简单合取式规则内包含的对象数的获取和找到简单合取式规则的所属布尔式规则,更加准确,快速,高效地对数据进行查找。
实施例四
在图6中示出了本发明实施例四的一种数据查找装置的结构图。如图6所示,所述装置包括:
规则转换模块61,用于将查找规则由布尔式规则转换为析取范式规则;
规则分解模块62,用于将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规则中包括一个或以逻辑与运算符连接的多个对象,所述对象包括字段或条件;
规则筛选模块63,用于将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据。
通过将查找规则由布尔式规则转换为析取范式规则;将所述析取范式规则分解为多个简单合取式规则;获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据的技术手段,只需将数据和简单合取式规则进行比对即可完成数据查找,缩小了索引所占用的时间和空间开销,同时,不再需要经过布尔运算就能判断出数据是否为布尔式查找规则所要查找的数据,提高了查找效率。
参见图6,在上述各实施例的基础上,该装置还可以包括:
索引建立模块64,用于建立所述析取范式规则的比对索引,其中,所述比对索引中包括所述析取范式规则中各简单合取式规则中包括的全部对象;
相应的,规则筛选模块63具体用于:
将数据库中的数据与所述析取范式规则的比对索引进行比对。
在上述各实施例的基础上,索引建立模块64具体可以包括:
标识分配单元641,用于为所述析取范式规则中各所述简单合取式规则分配对应的增量标识;
对象及标识获取单元642,用于依次获取所述析取范式规则中包括的一个对象,以及包括所述对象的全部简单合取式规则的增量标识;
比对索引建立单元643,用于根据所述析取范式规则中包括的各对象以及与所述各对象分别对应的增量标识,建立所述比对索引。
对应的,规则筛选模块63具体包括:
数据选取单元631,用于依次在数据库中选取目标数据;
对象匹配单元632,用于将所述目标数据中包括的各数据对象与所述析取范式规则的比对索引中包括的各个索引对象进行对象匹配,并在匹配成功时获取所述比对索引中与所述数据对象对应的全部增量标识,并更新与获取的增量标识对应的匹配成功次数;
数量对比单元633,用于在目标数据所有对象匹配完成后,将各增量标识的所述匹配成功次数与各增量标识对应的简单合取式规则中包括的对象数进行比较;
如果确定与一个增量标识对应的所述匹配成功次数和与该增量标识对应的简单合取式规则中包括的对象数相同,则确定所述目标数据命中所述析取范式规则中的一个简单合取式规则中包括的全部对象。
在上述各实施例的基础上,该装置还可以包括:
三元组建立模块65,用于为所述析取范式规则中各所述简单合取式规则建立三元组数据,其中,所述三元组数据中包括:第一元素、第二元素以及第三元素,第一元素为简单合取式规则的增量标识、第二元素为简单合取式规则中包括的对象数目,第三元素为与简单合取式规则对应的布尔式规则的标识;
相应的,数量对比单元633具体用于:
在对象匹配完成后,如果更新了目标增量标识对应的目标匹配成功次数,则获取以所述目标增量标识作为第一元素的目标三元组数据;
将所述目标匹配成功次数与所述目标三元组数据中的第二元素进行比较,如果二者相同,则确定所述目标数据命中所述析取范式规则中的一个简单合取式规则中包括的全部对象;其中,所述析取范式规则与所述目标三元组数据中的第三元素对应的布尔式规则相对应。
本发明实施例四所提供的数据查找装置可用于执行本发明任意实施例提供的数据查找方法,具备相应的功能模块,实现相同的有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (8)

1.一种数据查找方法,其特征在于,包括:
将查找规则由布尔式规则转换为析取范式规则;
将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规则中包括一个或以逻辑与运算符连接的多个对象,所述对象包括字段或条件;
将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据;
其中,将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对之前,还包括:
建立所述析取范式规则的比对索引,其中,所述比对索引中包括所述析取范式规则中各简单合取式规则中包括的全部对象;
相应的,将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对具体包括:
将数据库中的数据与所述析取范式规则的比对索引进行比对。
2.根据权利要求1所述的方法,其特征在于,建立所述析取范式规则的比对索引具体包括:
为所述析取范式规则中各所述简单合取式规则分配对应的增量标识;
依次获取所述析取范式规则中包括的一个对象,以及包括所述对象的全部简单合取式规则的增量标识;
根据所述析取范式规则中包括的各对象以及与所述各对象分别对应的增量标识,建立所述比对索引。
3.根据权利要求2所述的方法,其特征在于,将数据库中的数据与所述析取范式规则的比对索引进行比对具体包括:
依次在数据库中选取目标数据;
将所述目标数据中包括的各数据对象与所述析取范式规则的比对索引中包括的各个索引对象进行对象匹配,并在匹配成功时获取所述比对索引中与所述数据对象对应的全部增量标识,并更新与获取的增量标识对应的匹配成功次数;
在目标数据所有对象匹配完成后,将各增量标识的所述匹配成功次数与各增量标识对应的简单合取式规则中包括的对象数进行比较;
如果确定与一个增量标识对应的所述匹配成功次数和与该增量标识对应的简单合取式规则中包括的对象数相同,则确定所述目标数据命中所述析取范式规则中的一个简单合取式规则中包括的全部对象。
4.根据权利要求2或3所述的方法,其特征在于,在建立所述析取范式规则的比对索引之后,还包括:
为所述析取范式规则中各所述简单合取式规则建立三元组数据,其中,所述三元组数据中包括:第一元素、第二元素以及第三元素,第一元素为简单合取式规则的增量标识、第二元素为简单合取式规则中包括的对象数目,第三元素为与简单合取式规则对应的布尔式规则的标识;
相应的,在目标数据所有对象匹配完成后,将各增量标识的所述匹配成功次数与各增量标识对应的简单合取式规则中包括的对象数进行比较具体包括:
在对象匹配完成后,如果更新了目标增量标识对应的目标匹配成功次数,则获取以所述目标增量标识作为第一元素的目标三元组数据;
将所述目标匹配成功次数与所述目标三元组数据中的第二元素进行比较,如果二者相同,则确定所述目标数据命中所述析取范式规则中的一个简单合取式规则中包括的全部对象;其中,所述析取范式规则与所述目标三元组数据中的第三元素对应的布尔式规则相对应。
5.一种数据查找装置,其特征在于,包括:
规则转换模块,用于将查找规则由布尔式规则转换为析取范式规则;
规则分解模块,用于将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规则中包括一个或以逻辑与运算符连接的多个对象,所述对象包括字段或条件;
规则筛选模块,用于将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据;
所述数据查找装置还包括:
索引建立模块,用于建立所述析取范式规则的比对索引,其中,所述比对索引中包括所述析取范式规则中各简单合取式规则中包括的全部对象;
相应的,规则筛选模块具体用于:
将数据库中的数据与所述析取范式规则的比对索引进行比对。
6.根据权利要求5所述的装置,其特征在于,所述索引建立模块具体包括:
标识分配单元,用于为所述析取范式规则中各所述简单合取式规则分配对应的增量标识;
对象及标识获取单元,用于依次获取所述析取范式规则中包括的一个对象,以及包括所述对象的全部简单合取式规则的增量标识;
比对索引建立单元,用于根据所述析取范式规则中包括的各对象以及与所述各对象分别对应的增量标识,建立所述比对索引。
7.根据权利要求6所述的装置,其特征在于,所述规则筛选模块具体包括:
数据选取单元,用于依次在数据库中选取目标数据;
对象匹配单元,用于将所述目标数据中包括的各数据对象与所述析取范式规则的比对索引中包括的各个索引对象进行对象匹配,并在匹配成功时获取所述比对索引中与所述数据对象对应的全部增量标识,并更新与获取的增量标识对应的匹配成功次数;
数量对比单元,用于在目标数据所有对象匹配完成后,将各增量标识的所述匹配成功次数与各增量标识对应的简单合取式规则中包括的对象数进行比较;
如果确定与一个增量标识对应的所述匹配成功次数和与该增量标识对应的简单合取式规则中包括的对象数相同,则确定所述目标数据命中所述析取范式规则中的一个简单合取式规则中包括的全部对象。
8.根据权利要求6或7所述的装置,其特征在于,还包括:三元组建立模块,用于为所述析取范式规则中各所述简单合取式规则建立三元组数据,其中,所述三元组数据中包括:第一元素、第二元素以及第三元素,第一元素为简单合取式规则的增量标识、第二元素为简单合取式规则中包括的对象数目,第三元素为与简单合取式规则对应的布尔式规则的标识;
相应的,数量对比单元具体用于:
在对象匹配完成后,如果更新了目标增量标识对应的目标匹配成功次数,则获取以所述目标增量标识作为第一元素的目标三元组数据;
将所述目标匹配成功次数与所述目标三元组数据中的第二元素进行比较,如果二者相同,则确定所述目标数据命中所述析取范式规则中的一个简单合取式规则中包括的全部对象;其中,所述析取范式规则与所述目标三元组数据中的第三元素对应的布尔式规则相对应。
CN201510808244.7A 2015-11-19 2015-11-19 数据查找方法和装置 Active CN105447135B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510808244.7A CN105447135B (zh) 2015-11-19 2015-11-19 数据查找方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510808244.7A CN105447135B (zh) 2015-11-19 2015-11-19 数据查找方法和装置

Publications (2)

Publication Number Publication Date
CN105447135A CN105447135A (zh) 2016-03-30
CN105447135B true CN105447135B (zh) 2019-04-09

Family

ID=55557312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510808244.7A Active CN105447135B (zh) 2015-11-19 2015-11-19 数据查找方法和装置

Country Status (1)

Country Link
CN (1) CN105447135B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776520A (zh) * 2016-12-27 2017-05-31 中国建设银行股份有限公司 一种计算公式处理方法、装置以及计算方法和装置
CN107577800A (zh) * 2017-09-21 2018-01-12 合肥集知网知识产权运营有限公司 一种基于模糊集合模型的大数据专利检索方法
CN111179007A (zh) * 2019-07-03 2020-05-19 腾讯科技(深圳)有限公司 展示信息的处理方法及装置、电子设备
CN116186048B (zh) * 2023-03-09 2023-12-15 苏州异格技术有限公司 Fpga的元器件的数据处理方法、装置、电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873079A (en) * 1996-09-20 1999-02-16 Novell, Inc. Filtered index apparatus and method
CN101866358A (zh) * 2010-06-12 2010-10-20 中国科学院计算技术研究所 一种多维区间查询方法及系统
CN103049506A (zh) * 2012-12-12 2013-04-17 华南理工大学 移动设备的数据缓存方法及其系统
CN104123374A (zh) * 2014-07-28 2014-10-29 北京京东尚科信息技术有限公司 分布式数据库中聚合查询的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873079A (en) * 1996-09-20 1999-02-16 Novell, Inc. Filtered index apparatus and method
CN101866358A (zh) * 2010-06-12 2010-10-20 中国科学院计算技术研究所 一种多维区间查询方法及系统
CN103049506A (zh) * 2012-12-12 2013-04-17 华南理工大学 移动设备的数据缓存方法及其系统
CN104123374A (zh) * 2014-07-28 2014-10-29 北京京东尚科信息技术有限公司 分布式数据库中聚合查询的方法及装置

Also Published As

Publication number Publication date
CN105447135A (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN105447135B (zh) 数据查找方法和装置
US9208223B1 (en) Method and apparatus for indexing and querying knowledge models
US20170308570A1 (en) Systems and methods for rapid data analysis
CN107391509B (zh) 标签推荐方法及装置
CN104794242B (zh) 一种搜索方法
US9330159B2 (en) Techniques for finding a column with column partitioning
CN111651641B (zh) 一种图查询方法、装置及存储介质
CN108776678B (zh) 基于移动端NoSQL数据库的索引创建方法及装置
CN112445889A (zh) 存储数据、检索数据的方法及相关设备
EP2530610A1 (en) Apparatus and method of searching and visualizing instance path
CN105745642B (zh) 查询数据的处理方法和装置
US10565188B2 (en) System and method for performing a pattern matching search
US20220222233A1 (en) Clustering of structured and semi-structured data
CN112364014A (zh) 数据查询方法、装置、服务器及存储介质
CN109753504A (zh) 数据查询方法及装置
CN104794130A (zh) 一种表间关联查询方法和装置
WO2019048879A1 (en) SYSTEM FOR DETECTING DATA RELATIONS FROM SAMPLE DATA
CN110532282A (zh) 数据查询方法及装置
CN103995831B (zh) 基于物品间相似度的物品处理方法、系统和装置
CN109101595A (zh) 一种信息查询方法、装置、设备及计算机可读存储介质
CN106844406B (zh) 检索方法和检索装置
CN107229704A (zh) 一种基于ksp算法的资源描述框架查询方法和系统
CN114911826A (zh) 一种关联数据检索方法和系统
US11093797B1 (en) Feature superposition predictor
CN106372089B (zh) 确定词语位置的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant