本发明专利技术实施例公开了一种数据查找方法和装置。所述方法包括:将查找规则由布尔式规则转换为析取范式规则;将所述析取范式规则分解为多个简单合取式规则;将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据。本发明专利技术的技术方案解决了现有数据查找算法中,索引所需要的空间和时间的开销过大,以及规则表达式的布尔运算带来的查找效率低下等问题。
【技术实现步骤摘要】
本专利技术设及数据处理领域,尤其设及一种数据查找方法和装置。
技术介绍
随着互联网,社交网络,电子商务等的迅猛发展,每天新增的数据量也迅速激增。 对于海量数据,我们需要根据预设的规则,通过高速实时的比对,来筛选过滤海量的数据。 在传统的算法实现中,W规则的字段或条件的名称进行哈希储存,映射值不仅要 存储字段或条件的取值,还需要存储表达式IDQdentification,身份标识号)及字段或条 件在表达式中的位置。在筛选查找数据时,需要对海量数据中每个字段或条件在哈希表中 查找,然后根据字段或条件的取值取得所有的表达式ID及位置,进行排序合并等,最后再根 据位置进行布尔运算并根据布尔运算的结果确定数据是否命中。 图1为现有技术中传统数据查找的索引表的结构图。如图1所示,哈希表中每个字 段有很多的映射值。映射值存储结构为Ξ部分,字段的取值、对应的表达式ID及字段在表达 式中的位置、W及指向下一个映射值的指针,指针使数据查找时能遍历字段所有的映射值。 例如:当某个数据的取值为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的布尔表达式。 如上所述,在实现传统的数据查找中,需要记录规则中每个字段或条件的位置信 息,增加了索引的时间及空间的开销,且索引和查找都比较复杂,需要先进行多级的查找, 在查找完所有规则后,需要找到所有的线索号及位置信息,合并等复杂运算,在合并完成 后,还需要进行布尔表达式的运算才能确定是否命中,综合运些因素,现有的算法对空间的 消耗极其庞大,不能支持大量的规则,同时当预设的规则数到达一定数量后,查找的性能也 变得极为低下。 综上,传统的数据查找算法的主要缺陷在于:索引所占用的空间过大对预设规则 数量的限制,不能接受大量的规则,且多级查找占用时间较多,W及筛选过滤时的合并排序 及规则表达式的布尔运算带来的查找效率的低下。
技术实现思路
有鉴于此,本专利技术实施例提供一种数据查找方法和装置,W解决现有数据查找算 法中,索引所需要的空间和时间的开销过大,W及规则表达式的布尔运算带来的查找效率 低下的问题。[000引第一方面,本专利技术实施例提供了一种数据查找方法,包括: 将查找规则由布尔式规则转换为析取范式规则; 将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规则中 包括一个或w逻辑与运算符连接的多个对象,所述对象包括字段或条件;将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中 任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据。 第二方面,本专利技术实施例提供了一种数据查找装置,包括: 规则转换模块,用于将查找规则由布尔式规则转换为析取范式规则; 规则分解模块,用于将所述析取范式规则分解为多个简单合取式规则,其中,所述 简单合取式规则中包括一个或W逻辑与运算符连接的多个对象,所述对象包括字段或条 件; 规则筛选模块,用于将数据库中的数据与所述析取范式规则中各简单合取式规则 进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对 应的查找数据。 本专利技术实施例提供的数据查找方法和装置,通过将查找规则由布尔式规则转换为 析取范式规则;将所述析取范式规则分解为多个简单合取式规则;获取命中任一简单合取 式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据的技术手段,只需将 数据和简单合取式规则进行比对即可完成数据查找,缩小了索引所占用的时间和空间开 销,同时,不再需要经过布尔运算就能判断出数据是否为布尔式查找规则所要查找的数据, 提高了查找效率。【附图说明】 通过阅读参照W下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它 特征、目的和优点将会变得更明显: 图1为现有技术中传统数据查找的索引表的结构图; 图2为本专利技术实施例一提供的一种数据查找方法流程示意图; 图3为本专利技术实施例二提供的一种数据查找方法流程示意图; 图4为本专利技术实施例二提供的数据查找方法中使用的比对索引的结构图; 图5为本专利技术实施例Ξ提供的简单合取式对应的Ξ元组结构示意图; 图6为本专利技术实施例四提供的一种数据查找装置的结构图。【具体实施方式】 下面结合附图和实施例对本专利技术作进一步的详细说明。可W理解的是,此处所描 述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便 于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。实施例一 图2为本专利技术实施例一提供的一种数据查找方法流程示意图。该方法适用于工业、 商业等各种捜索引擎对海量数据进行捜索、分类和整理等情况,该方法由具有捜索引擎的 装置、终端或者服务器执行,可W采用软件和/或硬件的形式实现。如图2所示,所述数据查 找方法包括: S210、将查找规则由布尔式规则转换为析取范式规则。 对于互联网、社交网路等中的海量数据,有海量的查找规则与其对应,运种数据和 查找规则的对应关系使用户能对海量数据进行查找和筛选等操作。而在运种对应关系中下 发的查找规则可称为布尔式规则。 布尔式规则具体为一个或者W逻辑运算符号("逻辑与"、"逻辑或"W及"逻辑非" 等)连接的多个对象。在现有技术中,通过将用户依据查找条件设置的布尔式规则与海量数 据进行布尔运算,可W实现对数据的查找。布尔运算一般用来判断真假值,当有数据命中布 尔式查找规则时,布尔运算结果为真,否则,为假。 在本实施例中,不再使用布尔式规则进行数据查找,而是将布尔式规则首先转换 为析取范式规则,之后再将析取范式规则分解为多个简单合取式规则后,基于简单合取式 规则完成对数据的查找。 在布尔逻辑中,析取范式是逻辑公式的标准化,它是合取子句的析取,即一个或W 逻辑或运算符连接的多个简单合取式。 S220、将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规 则中包括一个或W逻辑与运算符连接的多个对象,所述对象包括字段或条件。 简单析取式为有限个对象W逻辑或运算符连接的式子,简单合取式为有限个对象 W逻辑与运算符连接的式子。并且由有限个简单合取式构成的析取式称为析取范式,由有 限个简单析取式构成的合取式称为合取范式。所W析取范式为有限个简单合取式W逻辑或 连接构成的。 本实施例中所述的对象包括字段或条件,例如,字段可W为"在北京工作的男性", 而条件为"年龄大于20岁"。运些字段或条件W逻辑与运算符相连接,就构成了简单合取式。 运里的简单合取式规则所要查找的即为与"在北京工作的年龄大于20岁的男性"相匹配的 数据。 S230、将当前第1页1 2 3 4 本文档来自技高网...
【技术保护点】
一种数据查找方法,其特征在于,包括:将查找规则由布尔式规则转换为析取范式规则;将所述析取范式规则分解为多个简单合取式规则,其中,所述简单合取式规则中包括一个或以逻辑与运算符连接的多个对象,所述对象包括字段或条件;将数据库中的数据与所述析取范式规则中各简单合取式规则进行比对,获取命中任一简单合取式规则中包括的全部对象的数据作为与所述查找规则对应的查找数据。
【技术特征摘要】
【专利技术属性】
技术研发人员:周寅生,
申请(专利权)人:北京锐安科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。