CN110209663A - 搜索范围确定的方法、装置和存储介质 - Google Patents
搜索范围确定的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN110209663A CN110209663A CN201810151598.2A CN201810151598A CN110209663A CN 110209663 A CN110209663 A CN 110209663A CN 201810151598 A CN201810151598 A CN 201810151598A CN 110209663 A CN110209663 A CN 110209663A
- Authority
- CN
- China
- Prior art keywords
- subexpression
- dull
- subregion
- search
- range
- 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.)
- Granted
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/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/245—Query processing
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种搜索范围确定的方法、装置和存储介质。该方法包括:将用于搜索数据表的条件表达式转化为符合搜索要求的一个或者多个子表达式;将转化的一个或者多个子表达式中具有单调特性的子表达式标记为单调子表达式;获取数据表的分区区间和单调子表达式的单调区间;判断分区区间是否在单调区间内;基于判断结果确定分区区间是否为数据表的搜索范围。本发明实施例不仅可以减少搜索范围,而且可以利用复杂的搜索条件实现强大的搜索功能。
Description
技术领域
本发明涉及搜索技术领域,尤其涉及一种搜索范围确定的方法、装置和存储介质。
背景技术
随着网络技术的快速发展,数据库中的数据量随之急速增多,大数据时代已经来临。通常数据按区域存储在数据库中。在逻辑层,数据可以分为多个分区存放在不同的数据库表中;在物理层,数据可以分为多个分区存放在不同的数据文件或分布式数据库节点中。其中,分区是按照相同的公式计算数据内容,从逻辑上或物理上将数据分成多个分区的过程。范围分区是一种分区方法,这种方法可以保证在连续的分区中,前一个分区的最大值小于当前分区的最小值。
相对于哈希分区搜索的等值过滤方法,范围分区搜索方法是一种特殊的分区方法,它可以应用更多的过滤条件。例如,范围分区可以应用范围过滤,以便实现分区裁剪,从而实现在有效应用范围内进行数据读取,进而可以减少底层读取数据的代价。
现有的范围分区搜索方法仅支持简单范围过滤。例如,在数据库中,检索出年龄为10岁的用户名。
申请人经研究发现,现有的范围分区搜索方法搜索条件太过局限,而无法利用复杂的搜索条件进行分区搜索。例如,现有方法无法利用嵌套的表达式,例如a+1>3等,进行分区搜索。现有的范围分区搜索方法也无法利用非范围过滤的表达式,例如+,-,abs(取绝对值)等,进行分区搜索。现有的范围分区搜索方法不仅搜索范围太大,而且搜索功能较弱。
如何减少搜索范围,利用复杂的搜索条件实现强大的搜索功能,成为目前亟待解决的技术问题。
发明内容
为了解决不仅检索范围太大,而且检索功能较弱的问题,本发明实施例提供了一种搜索范围确定的方法、装置和终端设备。
第一方面,提供了一种搜索范围确定的方法。该方法包括以下步骤:
将用于搜索数据表的条件表达式转化为符合搜索要求的一个或者多个子表达式;
将转化的一个或者多个子表达式中具有单调特性的子表达式标记为单调子表达式;
获取数据表的分区区间和单调子表达式的单调区间;
判断分区区间是否在单调区间内;
基于判断结果确定分区区间是否为数据表的搜索范围。
第二方面,提供了一种搜索范围确定的装置。该装置包括:表达式转化组件、表达式标记组件和范围确定组件,其中:
表达式转化组件,用于将用于搜索数据表的条件表达式转化为符合搜索要求的一个或者多个子表达式;
表达式标记组件,用于将转化的一个或者多个子表达式中具有单调特性的子表达式标记为单调子表达式;
范围判断组件,用于判断分区区间是否在单调区间内;
范围确定组件,用于基于判断结果确定分区区间是否为数据表的搜索范围。
第三方面,提供了一种搜索范围确定的装置。该装置包括:
存储器,用于存放程序;
处理器,用于执行所述存储器存储的程序,所述程序使得所述处理器执行上述各方面所述的方法。
第四方面,提供了一种计算机可读存储介质。该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第五方面,提供了一种包含指令的计算机程序产品。当该产品在计算机上运行时,使得计算机执行上述各方面所述的方法。
第六方面,提供了一种计算机程序。当该计算机程序在计算机上运行时,使得计算机执行上述各方面所述的方法。
一方面,上述发明实施例可以通过将用于搜索的条件表达式标准化为一个或者多个子表达式,从而不仅可以支持多种类的条件表达式,而且可以支持复杂类型的条件表达式,进而扩大了搜索的应用范围,增强了搜索功能。
另一方面,上述发明实施例可以通过判断子表达式的函数在子表达式的范围区间内是否具有单调特性,可以实现将搜索的范围扩展到所有包括单调区间的函数的区间上,使得单调区间可以最大可能地覆盖参与过滤的条件表达式,使得有效范围内的搜索更加彻底,进一步增强了搜索功能。
又一方面,上述发明实施例可以通过在兴趣区间内进行搜索,从而将搜索范围从整个数据库缩小至兴趣区间,大幅度减少了搜索范围。在有效的搜寻范围内进行搜索,不仅可以减少搜索时间,而且可以减少计算开销。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例的搜索范围确定的系统架构示意图;
图2是本发明一实施例的搜索范围确定的方法流程示意图;
图3是本发明另一实施例的搜索范围确定的方法流程示意图;
图4是本发明一实施例的搜索范围确定的装置的结构示意图;
图5是本发明一实施例的搜索范围确定的装置的框架示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1是本发明一实施例的搜索范围确定的系统架构示意图。
如图1所示,该架构可以包括:服务器10、客户端20和网络30。服务器10可以包括数据库11,数据库11内可以存放数据表111。
本实施例的一个应用场景可以是:用户40(如小周)利用客户端20访问服务器10,在数据库11的数据表111中搜索目标信息。
其中,服务器10可以安装有各种数据库11和各种通讯客户端应用,例如即时通信工具、邮箱客户端、社交平台软件、音频视频软件等。通常,服务器10具有较高的硬件配置和较强的运算能力。在运算压力较小的情况下,服务器10可以用台式机、工作站、移动设备或上述的电子设备等进行替代。
数据库11可以是SQLserver数据库和Oracle数据库等。
数据表111例如可以如下面表(1)所示:
表(1)
参照表(1),在数据库11的数据表111中搜索目标信息可以是:姓王、男性、年龄大于20岁且注册时的年龄大于17岁的用户名王海。用于搜索的条件表达式可以是:name like“王%”and gender=男and age>20 and age-2017+register year>17。
客户端20包括但不限于个人电脑、智能手机、平板电脑、个人数字助理、服务器等。
网络30可以用以在各种电子设备之间提供通信链路的介质。具体的,网络30可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。
应该理解,图1中的设备的数目仅仅是示意性的。根据实现需要,该系统架构可以具有任意数目的服务器10、数据库11、数据表111、客户端20和网络30。
下面各实施例均可以应用本实施例的系统架构进行数据搜索等处理。
图2是本发明一实施例的搜索范围确定的方法流程示意图。
本实施例的执行主体可以搜索组件,可以理解其他具有如下搜索、数据处理等功能的处理器、计算器等也可以作为本实施例的主体,此方面内容不做限制。
如图2所示,该方法包括以下步骤:S210,将用于搜索数据表的条件表达式转化为符合搜索要求的一个或者多个子表达式;S220,将转化的一个或者多个子表达式中具有单调特性的子表达式标记为单调子表达式;S230,获取数据表的分区区间和单调子表达式的单调区间;S240,判断分区区间是否在单调区间内;S250,基于判断结果确定分区区间是否为数据表的搜索范围。
在步骤S210中,子表达式可以包括:函数表达式。函数表达式可以包括:嵌套的表达式和/或非范围过滤的表达式。
可以理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
在一些实施例中,嵌套的表达式例如可以是:a+1>3。非范围过滤的表达式例如可以是:非范围过滤的表达式,例如+,-,abs等。
在一些实施例中,搜索组件将用于搜索的条件表达式标准化为一个或者多个子表达式的步骤可以包括:
S211,搜索组件将条件表达式转换为合取范式(Conjunctive Normal Form,CNF)。
CNF是离散数学中的一种逻辑表达方式。合取范式例如可以是:(┐p∧q)∧r。其中,p、q和r均可以是一个子表达式,例如a>10、10<a等。∧可以表示and。
S212,搜索组件将析取范式进行等价转换,得到一个或者多个标准的子表达式。例如,当搜索组件仅支持小于比较的搜索时,可以将大于比较等价转换为小于比较的表达式。例如,将子表达式a>10转换为10<a。
在步骤S220中,单调子表达式可以包括单调函数表达式。单调函数可以包括单调递增函数和单调递减函数。单调函数f(x)中x是一个参数向量。如果(x1,x2∈R;x1>x2)时,f(x1)>f(x2),则称f(x)是单调函数,且f(x)是单调区间中的单调递增函数;如果(x1,x2∈R;x1>x2)时,f(x1)<f(x2),称f(x)是单调区间中的单调递减函数。单调区间是函数满足单调函数条件的参数取值范围。
搜索组件判断子表达式的函数在子表达式的范围区间内是否具有单调特性的步骤可以包括:
S221,搜索组件获取子表达式的函数和子表达式的范围区间。
例如,子表达式为:|a|<3 and a<1,那么,该子表达式的函数是F(x)=|a|和F(x)=a。
过滤条件为|a|<3 and a<1,分区区间分别是a∈(-3,3)和(-∞,1)。
S222,搜索组件判断函数在范围区间内是否是单调函数。
因为,|a|是在(-∞,0]上单调递减,在[0,+∞)上单调递增的函数。因此,a∈(-3,-1)时,|a|是在(-3,0]上单调递减,|a|是在(1,3)上单调递增。
S223,当函数是单调函数时,搜索组件判断子表达式的自由度是否是预设自由度。
其中,预设自由度包括:具有分区列引用的自由度。
在一些实施例中,当表达式是一个常数时,r=0;当表达式可以对一个分区列引用时,r=1;当表达式不能对一个分区列引用时,r=+∞;当表达式是子树,且该子树的顶层函数单调时,r=Σri,ri是第i个孩子的自由度。当该子树的顶层函数不单调时,r=+∞。
S224,当自由度是预设自由度,搜索组件确认函数在范围区间内具有单调特性。
在本实施例中,当预设自由度为r=1时,搜索组件确认函数在范围区间内具有单调特性。
在步骤S230中,搜索组件将子表达式标记为单调子表达式是为了确定:在某段连续的空间,函数是否单调。当函数具有单调性时,该函数对应的子表达式是可以代入函数计算的子表达式。
在步骤S240中,搜索组件判断范围区间内数值是否符合单调子表达式的步骤可以包括:
S241,搜索组件获取范围区间的首值和范围区间的尾值。
S242,搜索组件判断首值是否符合单调子表达式。
S243,搜索组件判断尾值是否符合单调子表达式。
S244,当首值符合单调子表达式和/或尾值符合单调子表达式时,搜索组件确定范围区间内数值符合单调子表达式。
S245,当首值和尾值均不符合单调子表达式时,搜索组件确定范围区间内数值不符合单调子表达式。
对每个分区区间,遍历在标记阶段已经标记的单调子表达式,如果这个区间被单调子表达式的单调区间包含,则可以将这个分区区间的首值和尾值分别代入表达式计算。
经过计算,当首值符合单调子表达式时,计算结果是true,否则结算结果为false;当尾值符合单调子表达式时,计算结果是true,否则结算结果为false。如果首值和尾值的计算结果至少包含一个true,则标记该区间为感兴趣的区间。
在步骤S250中,如果首值和尾值的计算结果至少包含一个true,则标记该区间为感兴趣的区间。对每个分区区间,遍历在标记阶段已经标记的单调子表达式,如果这个区间跨越了单调区间,则也标记为感兴趣的区间。本发明实施例可以通过在兴趣区间内进行搜索,从而将搜索范围从整个数据库缩小至兴趣区间,大幅度减少了搜索范围。在有效的搜寻范围内进行搜索,不仅可以减少搜索时间,而且可以减少计算开销。
图3是本发明另一实施例的搜索范围确定的方法流程示意图。
下面以上述应用场景为例,参考图1、表(1)和图2,具体说明用户搜索表(1)中:姓王、男性、年龄大于20岁且注册时的年龄大于17岁的用户名的实现方式。
S310,接收用户输入的条件表达式:name like"王%"and gender=男and age>20and age-2017+registeryear>17。
S320,将上述条件表达式标准化为4个子条件表达式:
子表达式1:name like“王%”;
子表达式2:gender<=男(因为=不单调,因此将=改为<=);
子表达式3:age>20;
子表达式4:age-2017+registeryear>17。
S330,标记上述4个子表达式中单调子表达式。
对每个子表达式,查找该子表达式是否在范围区间内具有单调性,由此确定是否满足分区搜索方法。对于每个分区区间,确定每个子表达式(如果子树)的自由度:
子表达式1:是常数,自由度=0;
子表达式2:是分区列引用,自由度=1;
子表达式3:是分区列引用,自由度=1;
子表达式4:是区间内的单调函数,自由度=所有子树的自由度累加和。
由此可知:上述子表达式2和子表达式3的自由度均是1,因此,将gender<=男和age>20这两个子表达式标记为单调子表达式。
S340,获取数据表的分区区间范围和单调子表达式的单调区间范围。
数据表的分区区间在创建数据表(creat table)已经确定好。不同的数据表的分区区间可以不同。不同的分区区间在数据表中表示不同数据区域(range)。该分区区间大于过滤条件的范围区间。在本实施例中,该分区区间可以是[25,60]。
上述2个单调子表达式的单调区间范围分别为(-∞,+∞)。
S350,判断分区区间是否在单调区间内。
分区区间在单调区间内可以表示:分区区间没有跨越单调区间,分区区间在单调区间范围内。S360,将分区区间的首值和尾值代入计算,确定感兴趣区间。
例如,分区区间[25,60]的首值25代入表达式25>20为true,尾值60代入表达式60>20也为true,所以这个分区区间就是兴趣区间。即表(1)中“小柯”和“王海”所在分区区间就是兴趣区间。在兴趣区间搜索时,可以获取“王海”是目标检索的用户名。
S370,在兴趣区间内进行搜索。
兴趣区间可以是确定的分区区间,其可以为数据表的搜索范围内的区间。
在另一些实施例中,确定感兴趣区间的实现方式可以包括如下步骤:
S11,获取过滤条件:a<10and a>3and c>0。S12,标准化过滤条件为如下三个子表达式:
子表达式1:a<10;
子表达式2:3<a;
子表达式3:0<c。
S13,因为3个子表达式的自由度各自是1,1,+∞,所以标记单调子表达式为:a<10和3<a。
获取数据表的分区区间。该分区区间在创建数据表(creat table)已经确定好。不同的数据表的分区区间可以不同。不同的分区区间在数据表内表示不同数据区域(range)。该区间可以大于或者等于条件的范围区间。
在本实施例中,分区区间可以是a∈(0,4],(4,10]。
a<10和3<a这2个单调子表达式的单调区间范围分别为(-∞,+∞)。
S14,判断分区区间是否在所述单调区间内。
分区区间没有跨越单调区间,分区区间在单调区间范围内。S15,将分区区间的首值和尾值分别代入单调子表达式计算。
针对子表达式1(a<10),计算结果为:(0:true,4:true],(4:true,10:false]。即当区间(0,4]的首值0代入子表达式1计算,结果为true。当区间(0,4]的尾值4代入子表达式1计算,结果为true。当区间(4,10]的首值4代入子表达式1计算,结果为true。当区间(4,10]的尾值10代入子表达式1计算,结果为false。
同理,针对子表达式2(3<a)计算结果为:(0:false,4:true],(4:true,10:true]。
S16,因为a∈(0,4],(4,10]的区间中,首值和尾值中至少有一个结果为true,所以确定感兴趣的分区是分区区间(0,4],(4,10]。将感兴趣的分区区间确定为搜索范围。
在又一些实施例中,确定感兴趣区间的实现方式可以包括如下步骤:
S21,接收过滤条件为|a|<3and a<1。
在本实施例中,分区区间是a∈(-5,-4],(-1,1],(2,5]。
S22,判断分区区间是否在所述单调区间内,基于判断结果确定分区区间是否为数据表的搜索范围。
其中,|a|是在(-∞,0]上单调递减,[0,+∞)上单调递增,所以,|a|的单调区间有2个,分别为:(-∞,0]和[0,+∞)。因为分区区间(-1,1]在这2个单调区域内,所以该分区区间跨越了|a|的单调区间。此时,可以将该分区区间确定为感兴趣的区间。
其中,a<1的单调区间范围分别为(-∞,+∞)。由此可知,分区区间(-5,-4],(-1,1],(2,5]均没有跨越单调区间,分区区间在单调区间范围内。此时,需要将这些分区区间的首值和尾值均代入单调子表达式计算,如有首值和尾值的计算结果至少包含一个true,则可以将分区区间确定为感兴趣的区间。
具体的将这些分区区间的首值和尾值均代入单调子表达式计算的方式可以如下所示:首先,将|a|<3和a<1的子表达式,均标记为单调子表达式。
其次,将分区区间的首值和尾值分别代入单调子表达式计算:
针对单调子表达式|a|<3,计算结果为(-5:false,-4:false],(-1,1](跨越单调区间,标记为感兴趣),(2:true,5:false]
针对单调子表达式a<1:(-5:true,-4:true],(-1:true,1:false],(2:false,5:false]。
接着,因为分区区间(-1,1]均在这2个单调子表达式至少有1个true的计算结果,所以确定感兴趣的分区为(-1,1]。
在一些实施例中,上述搜索方式可以从1维扩展到多维。当分区列超过1列时,仅在分区区间中第一列的值相等的条件下,才能应用第二列的过滤条件。
例如,(a,b)∈((0,3),(1,5)],((1,5),(1,10)],其中,第一列的值1相等,第二个分区可以应用b的过滤条件。
例如,(a,b)∈((0,3),(1,5)],((2,1),(6,3)],其中,第一列的值1和2不相等,这个分区集合不能应用b的过滤条件。
上述算法从1维扩展到多维的方法是,先用上述方法确定第一列符合过滤条件,之后再迭代处理下一列。如果分区区间满足当前列之前所有的列值都相等的条件,则可以将上述方法应用到到当前列。
需要说明的是,上述方法的执行主体可以是搜索组件,也可以是控制器,还可以是处理器等。在不冲突的情况下,本领域的技术人员可以按实际需要将上述的操作步骤的顺序进行灵活调整,或者将上述步骤进行灵活组合等操作。为了简明,不再赘述各种实现方式。另外,各实施例的内容可以相互参考引用。
图4是本发明一实施例的搜索范围确定的装置的结构示意图。
如图4所示,该装置可以包括:表达式转化组件410、表达式标记组件420、范围判断组件430和范围确定组件440。其中:表达式转化组件410可以用于将用于搜索数据表的条件表达式转化为符合搜索要求的一个或者多个子表达式;表达式标记组件420可以用于将转化的一个或者多个子表达式中具有单调特性的子表达式标记为单调子表达式;范围判断组件430可以用于判断分区区间是否在单调区间内;范围确定组件440可以用于基于判断结果确定分区区间是否为数据表的搜索范围。
在一些实施例中,表达式转化组件410可以用于将条件表达式转换为逻辑关系为和的一个或者多个范式;判断转换的一个或者多个范式是否符合搜索要求;将符合搜索要求的范式确定为子表达式。
在一些实施例中,表达式转化组件410可以用于判断子表达式的函数是否为单调函数;当函数为单调函数时,判断子表达式的自由度是否是预设自由度;当自由度是预设自由度时,将子表达式标记为单调子表达式。
在一些实施例中,预设自由度可以包括:具有分区列引用的自由度。
在一些实施例中,范围确定组件440可以用于当判断结果指示分区区间在至少两个单调区间内时,将分区区间确定为搜索范围;当判断结果指示分区区间范围是仅在一个单调区间内时,基于分区区间和单调子表达式,确定分区区间是否为搜索范围。
在一些实施例中,范围确定组件440可以用于获取分区区间的首值和尾值;判断首值是否符合单调子表达式;判断尾值是否符合单调子表达式;当首值符合单调子表达式和/或尾值符合单调子表达式时,将分区区间确定为搜索范围。
在一些实施例中,该装置还可以包括:等价转换组件。该等价转换组件可以用于将不符合搜索要求的范式进行等价转换;将等价转换后的范式确定为子表达式。
在一些实施例中,该装置还可以包括:数据搜索组件。该数据搜索组件可以用于在搜索范围内搜索,得到符合条件表达式的搜索数据。
在一些实施例中,子表达式可以包括:函数表达式。函数表达式可以包括:嵌套的表达式和/或非范围过滤的表达式。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。例如,将2个元件集成在一个器件中,也可以将1个器件分为两个单独的元件等。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,当其在计算机上运行时,使得计算机执行上述各个实施例中描述的方法。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,上述各实施例的装置可作为上述各实施例的用于各实施例的方法中的执行主体,可以实现各个方法中的相应流程,实现相同的技术效果,为了简洁,此方面内容不再赘述。
图5是本发明一实施例的搜索范围确定的装置的框架示意图。
如图5所示,该框架可以包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行图2和图3实施例所做的各种操作。在RAM503中,还存储有系统架构操作所需的各种程序和数据。CPU501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.一种搜索范围确定的方法,包括:
将用于搜索数据表的条件表达式转化为符合搜索要求的一个或者多个子表达式;
将转化的一个或者多个子表达式中具有单调特性的子表达式标记为单调子表达式;
获取所述数据表的分区区间和所述单调子表达式的单调区间;
判断所述分区区间是否在所述单调区间内;
基于判断结果确定所述分区区间是否为所述数据表的搜索范围。
2.根据权利要求1所述的方法,其特征在于,基于判断结果确定所述分区区间是否是所述数据表的搜索范围,包括:
当判断结果指示所述分区区间在至少两个所述单调区间内时,将所述分区区间确定为所述搜索范围;
当判断结果指示所述分区区间范围是仅在一个所述单调区间内时,基于所述分区区间和所述单调子表达式,确定所述分区区间是否为所述搜索范围。
3.根据权利要求1所述的方法,其特征在于,基于所述分区区间和所述单调子表达式,确定所述分区区间是否为所述搜索范围,包括:
获取所述分区区间的首值和尾值;
判断所述首值是否符合所述单调子表达式;
判断所述尾值是否符合所述单调子表达式;
当所述首值符合所述单调子表达式和/或所述尾值符合所述单调子表达式时,将所述分区区间确定为所述搜索范围。
4.根据权利要求1所述的方法,其特征在于,将用于搜索数据表的条件表达式转化为符合搜索要求的一个或者多个子表达式,包括:
将所述条件表达式转换为逻辑关系为和的一个或者多个范式;
判断转换的一个或者多个范式是否符合搜索要求;
将符合搜索要求的范式确定为所述子表达式。
5.根据权利要求4所述的方法,其特征在于,还包括:
将不符合搜索要求的范式进行等价转换;
将等价转换后的范式确定为所述子表达式。
6.根据权利要求1所述的方法,其特征在于,所述将转化的一个或者多个子表达式中具有单调特性的子表达式标记为单调子表达式,包括:
判断所述子表达式的函数是否为单调函数;
当所述函数为单调函数时,判断所述子表达式的自由度是否是预设自由度;
当所述自由度是所述预设自由度时,将所述子表达式标记为所述单调子表达式。
7.根据权利要求6所述的方法,其特征在于,所述预设自由度包括:具有分区列引用的自由度。
8.根据权利要求1所述的方法,其特征在于,还包括:
在所述搜索范围内搜索,得到符合所述条件表达式的搜索数据。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述子表达式包括:函数表达式。
10.根据权利要求9所述的方法,其特征在于,所述函数表达式包括:嵌套的表达式和/或非范围过滤的表达式。
11.一种搜索范围确定的装置,包括:表达式转化组件、表达式标记组件、范围判断组件和范围确定组件,其中:
表达式转化组件,用于将用于搜索数据表的条件表达式转化为符合搜索要求的一个或者多个子表达式;
表达式标记组件,用于将转化的一个或者多个子表达式中具有单调特性的子表达式标记为单调子表达式;
范围判断组件,用于判断所述分区区间是否在所述单调区间内;
范围确定组件,用于基于判断结果确定所述分区区间是否为所述数据表的搜索范围。
12.一种搜索范围确定的装置,其特征在于,包括:
存储器,用于存放程序;
处理器,用于执行所述存储器存储的程序,所述程序使得所述处理器执行如权利要求1-10中任意一项所述的方法。
13.一种计算机可读存储介质,包括:指令,
当所述指令在计算机上运行时,使得计算机执行如权利要求1-10中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810151598.2A CN110209663B (zh) | 2018-02-14 | 2018-02-14 | 搜索范围确定的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810151598.2A CN110209663B (zh) | 2018-02-14 | 2018-02-14 | 搜索范围确定的方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110209663A true CN110209663A (zh) | 2019-09-06 |
CN110209663B CN110209663B (zh) | 2023-06-20 |
Family
ID=67778634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810151598.2A Active CN110209663B (zh) | 2018-02-14 | 2018-02-14 | 搜索范围确定的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110209663B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101060A1 (en) * | 2004-11-08 | 2006-05-11 | Kai Li | Similarity search system with compact data structures |
CN101013424A (zh) * | 2005-12-27 | 2007-08-08 | 国际商业机器公司 | 执行关系数据库搜索的系统和方法 |
US20080306945A1 (en) * | 2007-06-05 | 2008-12-11 | Microsoft Corporation | Example-driven design of efficient record matching queries |
CN101501688A (zh) * | 2006-06-12 | 2009-08-05 | 沙力股份有限公司 | 搜索内容的方法和装置 |
US20120117054A1 (en) * | 2010-11-08 | 2012-05-10 | Lakshmikant Shrinivas | Query Analysis in a Database |
CN102597991A (zh) * | 2009-09-26 | 2012-07-18 | 哈米什·奥格尔维 | 文档分析与关联系统及方法 |
CN102622389A (zh) * | 2011-01-28 | 2012-08-01 | 株式会社日立制作所 | 检索式生成装置、检索系统、检索式生成方法 |
CN102880617A (zh) * | 2011-07-15 | 2013-01-16 | 无锡物联网产业研究院 | 物联网实体搜索方法及系统 |
US20130103662A1 (en) * | 2011-10-19 | 2013-04-25 | Zalag Corporation | Methods and apparatuses for generating search expressions from content, for applying search expressions to content collections, and/or for analyzing corresponding search results |
WO2016067334A1 (ja) * | 2014-10-27 | 2016-05-06 | 株式会社日立製作所 | 文書検索システム、ディベートシステム、文書検索方法 |
JP2017224240A (ja) * | 2016-06-17 | 2017-12-21 | 富士通株式会社 | 表データ検索装置、表データ検索方法、及び表データ検索プログラム |
CN107623666A (zh) * | 2016-07-15 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 信息搜索的方法、装置和系统 |
-
2018
- 2018-02-14 CN CN201810151598.2A patent/CN110209663B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101060A1 (en) * | 2004-11-08 | 2006-05-11 | Kai Li | Similarity search system with compact data structures |
CN101013424A (zh) * | 2005-12-27 | 2007-08-08 | 国际商业机器公司 | 执行关系数据库搜索的系统和方法 |
CN101501688A (zh) * | 2006-06-12 | 2009-08-05 | 沙力股份有限公司 | 搜索内容的方法和装置 |
US20080306945A1 (en) * | 2007-06-05 | 2008-12-11 | Microsoft Corporation | Example-driven design of efficient record matching queries |
CN102597991A (zh) * | 2009-09-26 | 2012-07-18 | 哈米什·奥格尔维 | 文档分析与关联系统及方法 |
US20120117054A1 (en) * | 2010-11-08 | 2012-05-10 | Lakshmikant Shrinivas | Query Analysis in a Database |
CN102622389A (zh) * | 2011-01-28 | 2012-08-01 | 株式会社日立制作所 | 检索式生成装置、检索系统、检索式生成方法 |
CN102880617A (zh) * | 2011-07-15 | 2013-01-16 | 无锡物联网产业研究院 | 物联网实体搜索方法及系统 |
US20130103662A1 (en) * | 2011-10-19 | 2013-04-25 | Zalag Corporation | Methods and apparatuses for generating search expressions from content, for applying search expressions to content collections, and/or for analyzing corresponding search results |
WO2016067334A1 (ja) * | 2014-10-27 | 2016-05-06 | 株式会社日立製作所 | 文書検索システム、ディベートシステム、文書検索方法 |
JPWO2016067334A1 (ja) * | 2014-10-27 | 2017-04-27 | 株式会社日立製作所 | 文書検索システム、ディベートシステム、文書検索方法 |
JP2017224240A (ja) * | 2016-06-17 | 2017-12-21 | 富士通株式会社 | 表データ検索装置、表データ検索方法、及び表データ検索プログラム |
CN107623666A (zh) * | 2016-07-15 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 信息搜索的方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
孙辉: "快速灰度投影算法及其在电子稳像中的应用", 《光学精密工程》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110209663B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111581976B (zh) | 医学术语的标准化方法、装置、计算机设备及存储介质 | |
CN108959236B (zh) | 医学文献分类模型训练方法、医学文献分类方法及其装置 | |
US11409778B2 (en) | Mapping of topics within a domain based on terms associated with the topics | |
WO2020029412A1 (zh) | 标签推荐方法、装置、计算机设备及计算机可读存储介质 | |
Lin et al. | Using simulated annealing to schedule a flowshop manufacturing cell with sequence-dependent family setup times | |
CN110708285B (zh) | 流量监控方法、装置、介质及电子设备 | |
CN113204621B (zh) | 文档入库、文档检索方法,装置,设备以及存储介质 | |
CN106557178B (zh) | 用于更新输入法词条的方法及装置 | |
CN114175007A (zh) | 用于数据匹配的主动学习 | |
CN113239150B (zh) | 文本匹配方法、系统及设备 | |
JP7450190B2 (ja) | 特許情報処理装置、特許情報処理方法、およびプログラム | |
US20230297430A1 (en) | Machine-Learning Model Retargeting | |
CN110929526A (zh) | 样本生成方法、装置以及电子设备 | |
CN110209663A (zh) | 搜索范围确定的方法、装置和存储介质 | |
CN116127376A (zh) | 模型训练方法、数据分类分级方法、装置、设备及介质 | |
CN110245342A (zh) | 文本匹配的方法、装置和存储介质 | |
CN114385714A (zh) | 基于反馈的多排序融合方法、装置、设备及可读存储介质 | |
US20070033008A1 (en) | Apparatus, method and program for evaluating validity of dictionary | |
CN112861962A (zh) | 样本处理方法、装置、电子设备和存储介质 | |
JP4175001B2 (ja) | 文書データ検索装置 | |
US9747260B2 (en) | Information processing device and non-transitory computer readable medium | |
CN111694951A (zh) | 兴趣主题生成方法、装置、设备及存储介质 | |
CN110968773A (zh) | 应用推荐方法、装置、设备及存储介质 | |
CN113761326B (zh) | 一种过滤相似产品的方法和装置 | |
CN115550259B (zh) | 基于白名单的流量分配方法及相关设备 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40013059 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |