CN104834660B - 基于区间的模糊数据库搜索 - Google Patents
基于区间的模糊数据库搜索 Download PDFInfo
- Publication number
- CN104834660B CN104834660B CN201510050500.0A CN201510050500A CN104834660B CN 104834660 B CN104834660 B CN 104834660B CN 201510050500 A CN201510050500 A CN 201510050500A CN 104834660 B CN104834660 B CN 104834660B
- Authority
- CN
- China
- Prior art keywords
- search
- cryptographic hash
- section
- database
- data base
- 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
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- 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/2477—Temporal data queries
-
- 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/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Automation & Control Theory (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了一种用于搜索数据库的模糊数据库搜索技术。首先,该技术通过首先生成每个数据库条目的参考哈希值来准备数据库,该参考哈希值代表存储在该数据库条目的字段中的值。然后,该技术接收搜索请求以在该数据库中搜索如下数据库条目:其具有存储在所述字段中在规定范围之内的值。该技术将搜索请求转换为一个或更多个搜索哈希值,并将搜索哈希值与参考哈希值匹配,从而迅速地识别很可能与该搜索相关的数据库条目。
Description
技术领域
本发明涉及基于区间(interval)的模糊数据库搜索。
背景技术
数据库是被创建以存储、检索和管理大量信息的容器。数据库能够根据在数据库之内实现相关数据结构的模式(schema)来存储信息。所述模式可以从反映将被存储在数据库中的信息的结构的数据库模型进行创建。
随着更多的信息被添加到数据库,该数据库的大小增加。这可能导致性能问题,特别是试图在数据库中找出(locate)数据的时候。通常,数据库搜索是由数据库管理系统来执行的。数据库管理系统接收包含搜索参数的搜索请求并根据该搜索参数在该数据库中搜索条目。依赖于数据库的大小,客户可以体验到提交搜索请求和收到结果之间的延迟。随着数据库的增大,延迟也会增加,有时会成指数增加。
除了数据库的大小之外,所述延迟还可能由于搜索请求的复杂度而增加。例如,关于值范围的搜索请求可能引起额外的延迟,因为必须在数据库中检查整个范围。类似地,复杂的搜索查询需要额外的处理时间。例如,包括诸如“and(和)”和“or(或)”的条件语句的搜索请求花费更多的处理时间,因为每个条件参数都必须被检查。在诸如商业环境的某些场景中,由于这些延迟的长度,搜索数据库可能令人不快地缓慢。
发明内容
在一个实施例中,一种计算机实现的方法通过处理器接收关于搜索数据库的请求,该请求包括标识第一值范围的第一搜索参数。然后,该方法通过所述处理器响应于该请求生成至少一个搜索哈希值,其中每个搜索哈希值代表包含值的区间,每个区间不重叠。然后,该方法通过所述处理器搜索数据库以识别如下数据库条目:在该数据库条目的参考字段中包含所述至少一个搜索哈希值中的搜索哈希值。然后,该方法通过所述处理器返回识别出的数据库条目。
在另一实施例中,一种非暂态计算机可读存储介质存储一个或多个程序,该程序包括用于执行如下操作的指令:接收关于搜索数据库的请求,该请求包括标识第一值范围的第一搜索参数;响应于该请求,生成至少一个搜索哈希值,其中每个搜索哈希值代表包含值的区间,每个区间不重叠;搜索数据库以识别如下数据库条目:在该数据库条目的参考字段中包含所述至少一个搜索哈希值中的搜索哈希值;以及返回识别出的数据库条目。
在另一实施例中,一种计算机实现的系统包括:一个或多个计算机处理器和非暂态计算机可读存储介质。该非暂态计算机可读存储介质包括指令,当该指令被执行时,控制以将所述一个或多个计算机处理器配置用于:接收关于搜索数据库的请求,该请求包括标识第一值范围的第一搜索参数;响应于该请求,生成至少一个搜索哈希值,其中每个搜索哈希值代表包含值的区间,每个区间不重叠;搜索数据库以识别如下数据库条目:在该数据库条目的参考字段中包含所述至少一个搜索哈希值中的搜索哈希值;以及返回识别出的数据库条目。
以下的详细描述和附图提供了对本公开的本质和优点更好的理解。
附图说明
图1示出根据一个实施例的系统;
图2示出根据一个实施例的、生成哈希值的技术;
图3示出根据一个实施例的、从基于时间的搜索参数到哈希值的转换;
图4a示出根据一个实施例的、包括条件逻辑的基于时间的搜索请求的转换;
图4b示出根据实施例的、另一包括条件逻辑的基于时间的搜索请求的转换;
图5示出根据一个实施例的、提供数据库的搜索的处理流程;以及
图6示出根据一个实施例的示例性计算机系统。
具体实施方式
在以下描述中,为了解释的目的,阐述许多示例和具体细节以便提供对本公开的充分理解。然而,对于本领域技术人员,将明显的是,如权利要求所表述的本公开可以仅仅包括这些示例中的一些或全部特征或者上述特征与下面描述的其它特征的组合,并且还可以包括此处所描述的特征和概念的修改和等同物。
此处所描述的各种实施例提供了如下搜索技术:其能够由数据库管理系统来执行以便快速地找出满足搜索请求的数据库条目。所描述的搜索技术能够证明对于包含条件语句的复杂搜索查询特别有用。该搜索技术可以包括预处理数据库以向数据库条目添加参考哈希值。该参考哈希值可以通过修改数据库模式以更新现有字段或者添加用于存储参考哈希值的新的字段,被添加到数据库条目。存储参考哈希值的数据库条目的字段可以被称为参考哈希字段。
一旦数据库已被预处理,该搜索技术就能够接收包含搜索参数的搜索请求。该搜索参数能够指定:值、值范围或多个值范围。所述值可以与时间以及值的时间区间(valuestime intervals)的范围相关。可以使用与预处理中使用的算法相同或类似的算法,将该搜索参数转换为一个或更多个搜索哈希值。该一个或更多个搜索哈希值——其代表涵盖搜索参数的时间区间——可以接着被用于搜索满足搜索请求的数据库条目。通过将搜索参数转换为多个搜索哈希值,包含多个搜索参数的搜索请求能够由单个如下的调用(call)来处理:该调用确定数据库条目的参考哈希值是否与搜索哈希值中的一个匹配。这能够显著地减少搜索数据库所花费的时间。该搜索技术是模糊搜索的一种,因为该搜索是识别很可能与搜索请求相关的数据库条目的快速查找(quick lookup)。虽然大多数结果满足搜索参数,但也可能存在不满足搜索参数的一些结果。随后其他技术可以被用于细化搜索结果。例如,在找出属于特定时间区间的数据库条目之后,第二技术可以被用来确定所找出的数据库条目中的哪些数据库条目在规定的地理位置(geo-location)之内。在其他示例中,其他技术可以被应用以细化或缩窄搜索结果。
图1示出根据一个实施例的系统100。系统100包括客户端110,模糊搜索引擎130和数据库160。客户端110可以通过网络120与模糊搜索引擎130通信。在一些示例中,网络120可以是局域网、广域网、蓝牙网络或其他类型的有线或无线网络。客户端110可以经由网络120向模糊搜索引擎130提交搜索请求,以在数据库160中搜索信息。该搜索请求将能够找出数据库160之内的、满足一个或更多个搜索参数的数据。每个搜索参数可以是值或者值范围,其中搜索请求将找出满足或很可能满足该值或者值范围的数据库条目。在这个实施例中,每个搜索参数是时间或时间区间。当数据库条目具有包含单个值的相应的时间字段时,该数据库条目满足该单个值的搜索参数。当数据库条目具有包含由搜索参数(其可以包括值范围的外部边界)指定的值范围之内的时间值的相应的时间字段时,该数据库条目满足该值范围的搜索参数。在其他实施例中,搜索参数可以是距离的单位或一些其他度量的单位。
模糊搜索引擎130响应于搜索请求生成数据库结果。该数据库结果包括一个或更多个来自数据库160的、很可能满足该搜索请求的数据库条目。模糊搜索引擎130包括时间哈希转换器(temporal hash converter)140和哈希值搜索150。时间哈希转换器140被配置为将由模糊搜索引擎130接收的搜索请求转换为一个或更多个搜索哈希值。每个搜索哈希值可以代表时间区间。在一个示例中,该转换由时间哈希转换器140的哈希函数来执行。
所生成的搜索哈希值的长度可以与该搜索哈希值代表的时间区间的持续时间直接相关。例如,具有较长长度的搜索哈希值可以代表较小的时间区间,而另一具有较短长度的搜索哈希值可以代表较长的时间区间。在一个实施例中,该搜索哈希值可以覆盖如下的时间段:该时间段基本上等于搜索所描述的时间段。例如,如果搜索准则(searchcriteria)针对2014年1月13日(1/13/14)从下午3点到8点装运的物件(item),则搜索哈希值可以代表2014年1月13日从下午3点到8点之间的时间段。作为另一示例,若搜索准则针对2014年1月14日装运的物件,则搜索哈希值可以代表2014年1月14日从上午12点到下午11点59分之间的时间段。在另一实施例中,搜索哈希值可以代表如下时间段:该时间段扩展到超出由搜索请求指定的时间段。例如,如果该搜索参数针对2014年1月15日(1/15/14)从下午3点到8点装运的物件,则搜索哈希值可以代表2014年1月15日从下午1点到9点的时间段。这可能是由于时间区间是由搜索哈希值限定的。例如,一个搜索哈希值可以与2014年1月15日(1/15/14)从下午1点到5点的时间区间相关联,而另一搜索哈希值可以与2014年1月15日(1/15/14)从下午5点到9点的时间区间相关联。由于搜索参数针对与这两个搜索哈希值所关联的时间区间重叠的时间段,因此时间哈希转换器140可以返回这两个搜索哈希值。
在一个实施例中,时间哈希转换器140可以不论搜索请求中的搜索参数是什么,都生成相同长度的搜索哈希值。例如,时间哈希转换器140可以针对指定一小时的搜索参数,生成一个或更多个搜索哈希值。时间哈希转换器140还可以针对指定更长时间段(如,一整天)的另一搜索参数,也生成一个或更多个相同长度的搜索哈希值(然而,与指定一小时的搜索参数相比,可以针对指定一天的搜索参数生成更多的搜索哈希值)。在一些示例中,相同长度的不同的搜索哈希值可以代表相同的持续时间但在不同的时间点处。例如,搜索哈希值‘13245’可以代表4个小时的窗口(window),而哈希值‘13248’也代表4个小时的窗口,虽说在不同的时间点处。在一些示例中,与搜索哈希值相关联的时间的窗口不重叠。
在一个实施例中,时间哈希转换器140可以接收除了搜索参数之外的附加参数。附加参数能够调整时间哈希转换器140的性能并且进而影响所生成的搜索哈希值。在一个示例中,长度参数可以指定搜索哈希值的长度。缩短搜索哈希值的长度能够具有增大搜索哈希值所代表的时间区间的效果,由此调整模糊搜索引擎130的性能。较大的时间区间还能导致较小数目的所生成的搜索哈希值。在一些示例中,长度参数还可以在将搜索哈希值添加到数据库160中的数据时被使用。这能够保证搜索哈希值和参考哈希值具有相同的长度。
哈希值搜索150被配置为基于一个或更多个哈希值在数据库160中搜索数据。在一个示例中,哈希值搜索150可以将属于数据库160中的数据库条目的参考哈希值与搜索哈希值匹配。具有与搜索哈希值匹配的参考哈希值的数据库条目可以作为数据库结果的部分被返回。在一个实施例中,哈希值搜索150可通过匹配一个或更多个字符将参考哈希值与搜索哈希值匹配。在一些示例中,即使不是参考哈希值的所有字符都匹配,也能找到匹配。例如,当具有6个字符的参考哈希值的头4个字符与具有4个字符的搜索哈希值匹配时,哈希值搜索150可以认为该具有4个字符的搜索哈希值是该具有6个字符的参考哈希值的匹配。换言之,该搜索哈希值的所有字符都已匹配。一旦由哈希值搜索150识别出数据库结果,模糊搜索引擎130就可以经由网络120发送数据库结果到客户端110。在一些示例中,哈希值搜索150可以跨多个数据库匹配数据库条目,并返回组合的结果,作为数据库结果的部分。
在一个实施例中,附加参数可以被应用于哈希值搜索150以拓宽或缩窄搜索。例如,准确度(accuracy)参数可以被设置以调整将与参考哈希值匹配的、搜索哈希值中的字符的数目。该准确度参数可以被客户端110或模糊搜索引擎130使用,以指定数据库结果相对于搜索参数有多准确。例如,若搜索哈希值为‘14325’并且准确度参数被设置为4(代表最大匹配4个字符),则哈希值搜索150可以在数据库160中进行匹配以得到如下数据库条目:该数据库条目具有包含‘1432’作为头4个字符的参考哈希值。这意味着:该搜索可以返回具有被设置为‘14325’的参考哈希值的数据库条目,加上具有被设置为‘14321’、‘14322’、‘14323’、‘14324’、‘14326’、‘14327’、‘14328’或‘14329’的参考哈希值的数据库条目。在一个示例中,搜索请求可以包括由客户端110提供的准确度参数,其在查询数据库160时被哈希值搜索150使用。
图2示出根据一个实施例的、生成哈希值的技术。每个哈希值可以代表不重叠的时间窗口,也称为时间区间。技术200开始于指定第一层级的边界。在一个示例中,所述边界可以定义外部界限,数据库中的所有数据库条目都属于该界限之内。在此,所有数据库条目都具有2000年至3000年之间的时间值,因而时间线被设置为2000-3000。技术200将时间线划分为同等大小的时间区间的集合。每个时间区间代表由字母‘a’指定的时间窗口。该集合可以包括基本数目(base number)个同等大小的时间区间,其中该基本数目可以由搜索引擎或由客户来设置。在此,基本数目为10,因此外部界限度量被划分为10个同等长度的时间区间。每个时间区间可以被分配来自字符集合的一个字符。该字符集合可以包括若干个唯一的字符,字符的数目等于基本数目。在此,字符集合为数字‘0-9’。时间区间2000-2010被分配了字符‘0’,时间区间2010-2020被分配了字符‘1’,等等。
然后,技术200可以递归地将每个时间区间划分为同等大小的子时间区间(sub-time interval)的集合,从而生成第二层级。与第一层级类似,第二层级可以包括数目等于基本数目的子时间区间。此外,与第一层级类似,第二层级的子时间区间可以以类似的方式与来自字符集合的字符相关联。在此,子时间区间2010-2011被分配了字符‘0’,子时间区间2011-2012被分配了字符‘1’,等等。类似地,子时间区间2080-2081被分配了字符‘0’,而子时间区间2081-2082被分配了字符‘1’。第二层级中的每个子时间区间代表由字母‘b’指定的时间窗口。如所示的,10个‘b’窗口等于一个‘a’窗口。在一些示例中,字符可以根据子时间区间在时间线上的位置来分配给子时间区间。例如,出现在靠近时间线的较小一端的子时间区间首先被分配字符(2010-2011被分配了数字‘0’而2018-2019被分配了数字‘8’)。依赖于所期望的窗口大小,技术200可以划分每个子时间区间直到达到期望的窗口大小为止。例如,若期望的窗口大小为10年,则只需要第一层级,因为每个时间区间为10年的窗口。然而,若期望的窗口大小小于一个月的窗口,则需要第三层级或更高层级。期望的窗口大小可以是为技术200设置的变量。
在一个实施例中,技术200可以被用于准备数据库并执行数据库搜索。对于数据库准备,技术200可以响应于接收到数据库条目的预定义字段中的值而生成参考哈希值。该技术可以应用于数据库中的所有数据库条目,从而生成预定义字段的参考哈希值。一旦数据库准备已完成,技术200就可以被用来执行数据库搜索。数据库搜索可以接收包括一个或更多个搜索参数的搜索请求。每个搜索参数可以标识值或者值范围。技术200可以被应用于搜索参数中的值或者值范围,从而生成一个或更多个搜索哈希值。一个或更多个搜索哈希值可以被匹配到数据库条目的参考哈希值。具有与搜索哈希值之一匹配的参考哈希值的数据库条目可以作为数据库结果的部分被返回。
图3示出根据一个实施例的、从基于时间的搜索参数到哈希值的转换。如所示的,时间哈希转换器140接收如下搜索参数:其请求在2013年2月8日(2/8/13)上午4点到6点之间装运的所有产品。时间哈希转换器140接收附加参数310。在一个示例中,附加参数可以设置将被输出的哈希值的长度。在另一示例中,附加参数可以设置期望的哈希值的窗口大小。这两个附加参数都能影响精确度(precision)。通常,搜索精确度的减少(如,生成较短的哈希值)能够改善搜索的速度。
时间哈希转换器140基于搜索参数和附加参数310来生成哈希值。该哈希值的生成可以基于诸如图2中的技术200的技术。在此,由于2013年2月8日(2/8/13)上午4点到6点之间的搜索窗口在技术200的第一层级中位于2010到2020之间,故哈希值的第一字符被设置为‘1’。当窗口2010-2020被进一步划分时,该搜索窗口落入第四时间区间(如,2013-2014)并且因此字符‘3’被添加到该哈希值。以类似的方式,字符‘2’、‘0’、‘7’依次被添加到该哈希值。得到的哈希值‘13207’代表2013年2月8日(2/8/13)上午2点到8点之间的时间区间。由于这个时间区间涵盖期望精确度(按照由附加参数310确定的)的搜索参数,因此时间哈希转换器140输出该哈希值。这个哈希值可以进而被哈希值搜索150用来找出具有2013年2月8日(2/8/13)上午2点到8点之间的装运日期的数据库条目。在其中得到的哈希值与完全涵盖该搜索参数的时间区间不相关的其他示例中,另外的哈希值可以被生成直到一个或更多个哈希值涵盖该搜索参数为止。另外的哈希值可以是顺序的或者非顺序的。在其他实施例中,其他字符可以在生成哈希值中使用。例如,可以使用字母表中的26个字母,其中每个字母代表26个同等间隔的时间区间中的一个。每个子区间也会被划分为26个同等间隔的时间区间。在其他实施例中,搜索参数可以包括距离或其他类型的度量、或甚至数字。
图4a示出根据一个实施例的、包括条件逻辑的基于时间的搜索请求的转换。如410中所示的,搜索请求包括由OR(或)条件结合(join)的两个搜索参数。因此,匹配该搜索参数中的任何一个搜索参数的数据库条目都应被找出。传统上,这个处理需要多次通过(pass)该数据库。第一次通过被用于识别满足第一搜索参数的数据库条目。第一次通过的结果被保存在临时表中。接着,第二次通过被用于识别满足第二搜索参数的数据库条目。然后,第二次通过的结果与临时表中的结果进行组合。因此,处理该搜索请求需要多次通过。
相比之下,时间哈希转换器140能够处理每个搜索参数以生成哈希值。由于组合逻辑是OR条件,所以时间哈希转换器140可以将为每个搜索参数生成的搜索哈希值结合成组合的列表(list)。然后,哈希值搜索150可以搜索数据库160以找出匹配搜索哈希值中的一个的数据库条目。由于该搜索哈希值在组合的列表中,所以找出所有潜在相关的数据库条目只需单次通过该搜索功能。
图4b示出根据一个实施例的、另一包括条件逻辑的基于时间的搜索请求的转换。如410中所示的,该搜索请求包括由AND(与)条件结合(join)的两个搜索参数。时间哈希转换器140可以处理每个搜索参数以生成搜索哈希值,并随后将条件逻辑应用于所生成的搜索哈希值。在此,时间哈希转换器140可以从第一搜索参数2/16/13–2/23/13生成包含搜索哈希值‘1319’、‘1320’和‘1321’的第一列表。时间哈希转换器140还可以从第二搜索参数2/19/13–2/25/13生成包含搜索哈希值‘1320’、‘1321’和‘1322’的第二列表。一旦用于每个搜索参数的哈希值被生成,就可以应用条件逻辑。在此,AND条件被应用于这两个列表,得到搜索哈希值的最终列表。随后,该搜索哈希值可以被哈希值搜索150利用,以在单次通过中找出潜在相关的数据库条目。
图5示出根据一个实施例的、提供数据库的搜索的处理流程。过程500可以被存储在计算机可读介质中并由处理器执行。过程500开始于在510处接收关于搜索数据库的请求。在一个示例中,搜索请求可包括一个或更多个搜索参数,并且可选地包括将这些搜索参数结合起来的条件逻辑。给定的搜索参数可以识别将会满足该搜索的值范围。搜索参数可以重叠。在一些示例中,可以包括控制搜索的精确度或准确度的其他附加参数。具有高精确度的搜索可能执行的较慢,但能得到更有可能满足搜索参数的数据库结果的较小集合。相反,具有低精确度的搜索可能执行的较快,但会返回数据库结果的较大集合。在一个示例中,值范围是时间区间。
在接收到请求之后,过程500在520处继续,响应于该请求生成至少一个搜索哈希值。每个搜索哈希值可以代表值的区间。在一个示例中,这些区间可以是不重叠的。在另一示例中,由搜索哈希值代表的区间,在被组合时,可以涵盖(即,覆盖)由搜索参数所标识的值范围。
在生成该搜索哈希值之后,可选地,过程500可以在530处对该搜索哈希值执行组合逻辑。在一些场景中,该请求可以包括组合搜索参数的组合逻辑。例如,搜索参数可以由OR条件或AND条件来结合。执行组合逻辑之后得到的搜索哈希值被用于对该数据库执行搜索。
过程500在540处继续,搜索该数据库以识别包含所生成的搜索哈希值当中的搜索哈希值的数据库条目。若组合逻辑已执行,则使用执行组合逻辑之后得到的搜索哈希值。搜索数据库可以包括找出如下数据库条目:该数据库条目所具有的存储在参考字段中的值与搜索哈希值中的一个匹配。若找到匹配,则该数据库条目被认为是搜索结果的部分。搜索数据库之后,识别出的数据库条目在550处被返回。
示例性的计算机系统600在图6中示出。计算机系统610包括用于通信信息的总线605或其他通信机制、与总线605耦合的用于处理信息的处理器601。计算机系统610还包括耦合到总线605的存储器602,用于存储信息和由处理器601执行的指令,包括例如用于执行上述技术的信息和指令。这个存储器还可以用于存储变量,或者在由处理器601执行的指令的执行期间的其他中间信息。这个存储器的可能实现可以是,但不限于,随机存取存储器(RAM)、只读存储器(ROM)或以上二者。还提供存储设备603以用于存储信息和指令。存储设备的常见形式包括:例如,硬盘驱动器、磁盘、光盘、CD-ROM、DVD,快闪存储器、USB存储卡,或者是从计算机可以读取的任何其它介质。存储设备603可以包括例如源代码、二级制代码,或用于执行以上技术的软件文件。存储设备和存储器二者都是计算机可读介质的示例。
计算机系统610可以经由总线605被耦合到诸如阴极射线管(CRT)或液晶显示器(LCD)的显示器612,以用于向计算机用户显示信息。诸如键盘和/或鼠标的输入设备611被耦合到总线605,以用于将来自用户的信息和命令选择通信到处理器601。这些组件的组合允许用户与该系统通信。在一些系统中,总线905可以被划分为多个专用总线。
计算机系统610还包括与总线605耦合的网络接口604。网络接口604可以提供计算机系统610和本地网络620之间的双向数据通信。网络接口604可以是例如数字用户线(DSL)或者调制解调器,以通过电话线提供数据通信连接。网络接口的另一示例是提供到兼容LAN的数据通信连接的局域网(LAN)卡。无线链路是另一示例。在任何这种实现中,网络接口604发送和接收携带代表各种类型的信息的数字数据流的电信号、电磁信号、或光信号。
计算机系统610可以通过网络接口604跨局域网620、内联网、或因特网630,来发送和接收包括消息或其他接口动作的信息。对于局域网,计算机系统610可以与多个诸如服务器615的其他计算机器通信。因此,计算机系统610和由服务器615代表的服务器计算机系统可以形成云计算网络,其可以用在此描述的过程被编程。在因特网示例中,软件组件和服务可以跨网络地驻留在多个不同计算机系统610或服务器631-635上。例如,上述过程可以被实现在一个或更多个服务器上。服务器631可以通过因特网630、局域网620和网络接口604从一个组件,发送动作或消息到计算机系统610上的组件。例如,上述软件组件和过程可以被实现在任何计算机系统上并跨网络发送和/或接收信息。
以上描述示出本发明的各种实施例以及与本发明的各方面可以如何实现的示例。以上示例和实施例不应被视为只是实施例,而是被提供以示出由以下权利要求所定义的本发明的适应性和优点。基于以上公开和以下权利要求,其他配置、实施例、实现方式及其等同物对于本领域技术人员来说将是显而易见的,并且可以在不脱离权利要求所定义的本发明的精神和范围的情况下被采用。
Claims (17)
1.一种计算机实现的方法,包括:
由处理器接收关于搜索数据库的请求,该请求包括标识第一值范围的第一搜索参数;
由所述处理器响应于该请求生成至少一个搜索哈希值,其中每个搜索哈希值代表包含值的区间,每个区间不重叠;
由所述处理器搜索数据库以识别如下数据库条目:在该数据库条目的参考字段中包含所述至少一个搜索哈希值当中的搜索哈希值;以及
由所述处理器返回识别出的数据库条目;
其中,将与所述至少一个搜索哈希值当中的每个搜索哈希值相对应的区间组合,从而形成涵盖所述第一值范围的组合的区间。
2.如权利要求1所述的计算机实现的方法,其中,搜索哈希值的长度与区间的长度成反比。
3.如权利要求1所述的计算机实现的方法,其中,所述请求包括:标识第二值范围的第二搜索参数以及将所述第一搜索参数和第二搜索参数结合的条件逻辑。
4.如权利要求3所述的计算机实现的方法,其中,当搜索所述数据库时,识别:与从所述第一搜索参数生成的第一哈希值匹配的第一数据库条目、以及与从所述第二搜索参数生成的第二哈希值匹配的第二数据库条目。
5.如权利要求1所述的计算机实现的方法,其中,生成所述搜索哈希值包括:从多个区间中识别包含所述第一值范围的至少一部分的区间,
其中,所述多个区间是被划分为若干同等大小的区间的、预先确定的区间。
6.如权利要求1所述的计算机实现的方法,其中,所述值范围代表时间段。
7.一种非暂态计算机可读存储介质,其存储一个或更多个程序,所述一个或更多个程序包括用于执行如下操作的指令:
接收关于搜索数据库的请求,该请求包括标识第一值范围的第一搜索参数;
响应于该请求,生成至少一个搜索哈希值,其中每个搜索哈希值代表包含值的区间,每个区间不重叠;
搜索数据库以识别如下数据库条目:在该数据库条目的参考字段中包含所述至少一个搜索哈希值当中的搜索哈希值;以及
返回识别出的数据库条目;
其中,将与所述至少一个搜索哈希值当中的每个搜索哈希值相对应的区间组合,从而形成涵盖所述第一值范围的组合的区间。
8.如权利要求7所述的非暂态计算机可读存储介质,其中,搜索哈希值的长度与区间的长度成反比。
9.如权利要求7所述的非暂态计算机可读存储介质,其中,所述请求包括:标识第二值范围的第二搜索参数以及将所述第一搜索参数和第二搜索参数结合的条件逻辑。
10.如权利要求9所述的非暂态计算机可读存储介质,其中,当搜索所述数据库时,识别:与从所述第一搜索参数生成的第一哈希值匹配的第一数据库条目、以及与从所述第二搜索参数生成的第二哈希值匹配的第二数据库条目。
11.如权利要求7所述的非暂态计算机可读存储介质,其中,生成所述搜索哈希值包括:从多个区间中识别包含所述第一值范围的至少一部分的区间,
其中,所述多个区间是被划分为若干同等大小的区间的、预先确定的区间。
12.如权利要求7所述的非暂态计算机可读存储介质,其中,所述值范围代表时间段。
13.一种计算机实现的系统,包括:
一个或更多个计算机处理器;以及
非暂态计算机可读存储介质,其包括指令,当该指令被执行时,控制以将所述一个或多个计算机处理器配置用于:
接收关于搜索数据库的请求,该请求包括标识第一值范围的第一搜索参数;
响应于该请求,生成至少一个搜索哈希值,其中每个搜索哈希值代表包含值的区间,每个区间不重叠;
搜索数据库以识别如下数据库条目:在该数据库条目的参考字段中包含所述至少一个搜索哈希值当中的搜索哈希值;以及
返回识别出的数据库条目;
其中,将与所述至少一个搜索哈希值当中的每个搜索哈希值相对应的区间组合,从而形成涵盖所述第一值范围的组合的区间。
14.如权利要求13所述的计算机实现的系统,其中,搜索哈希值的长度与区间的长度成反比。
15.如权利要求13所述的计算机实现的系统,其中,所述请求包括:标识第二值范围的第二搜索参数以及将所述第一搜索参数和第二搜索参数结合的条件逻辑。
16.如权利要求15所述的计算机实现的系统,其中,当搜索所述数据库时,识别:与从所述第一搜索参数生成的第一哈希值匹配的第一数据库条目,以及与从所述第二搜索参数生成的第二哈希值匹配的第二数据库条目。
17.如权利要求13所述的计算机实现的系统,其中,生成所述搜索哈希值包括:从多个区间中识别包含所述第一值范围的至少一部分的区间,
其中,所述多个区间是被划分为若干同等大小的区间的、预先确定的区间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/179,307 US9529865B2 (en) | 2014-02-12 | 2014-02-12 | Interval based fuzzy database search |
US14/179,307 | 2014-02-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104834660A CN104834660A (zh) | 2015-08-12 |
CN104834660B true CN104834660B (zh) | 2019-10-11 |
Family
ID=52473767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510050500.0A Active CN104834660B (zh) | 2014-02-12 | 2015-01-30 | 基于区间的模糊数据库搜索 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9529865B2 (zh) |
EP (1) | EP2908258A1 (zh) |
CN (1) | CN104834660B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9449098B2 (en) * | 2014-05-30 | 2016-09-20 | Macy's West Stores, Inc. | System and method for performing a multiple pass search |
US10558690B2 (en) * | 2015-07-06 | 2020-02-11 | International Business Machines Corporation | Multiple sub-string searching |
CN106649358A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据获取方法及装置 |
CN107423295A (zh) * | 2016-05-24 | 2017-12-01 | 张向利 | 一种海量地址数据智能快速匹配方法 |
CN108090064B (zh) * | 2016-11-21 | 2021-10-08 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、数据存储服务器及系统 |
CN109582543A (zh) * | 2017-09-28 | 2019-04-05 | 北京国双科技有限公司 | 数据回溯方法和装置 |
EP4040322B1 (en) * | 2019-02-22 | 2024-08-21 | Visa International Service Association | Method and system for creating rapid searchable altered data in a database |
CN110471924A (zh) * | 2019-08-14 | 2019-11-19 | 紫光展锐(重庆)科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN112948729B (zh) * | 2019-12-10 | 2022-02-11 | 宇宙世代信息技术(深圳)有限公司 | 弹性自定义内容呈现方法、装置、计算机设备及存储介质 |
US11301440B2 (en) * | 2020-06-18 | 2022-04-12 | Lexisnexis Risk Solutions, Inc. | Fuzzy search using field-level deletion neighborhoods |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812996A (en) | 1994-07-12 | 1998-09-22 | Sybase, Inc. | Database system with methods for optimizing query performance with a buffer manager |
US5822749A (en) | 1994-07-12 | 1998-10-13 | Sybase, Inc. | Database system with methods for improving query performance with cache optimization strategies |
US5864842A (en) | 1995-10-23 | 1999-01-26 | Ncr Corporation | Optimization of SQL queries using hash star join operations |
AU2578001A (en) | 1999-12-10 | 2001-06-18 | Broadcom Corporation | Apparatus and method for reducing precision of data |
US20030182449A1 (en) | 2000-05-22 | 2003-09-25 | Raymond Anderson | Addressing remote data objects via a computer network |
US7401069B2 (en) | 2003-09-11 | 2008-07-15 | International Business Machines Corporation | Background index bitmapping for faster query performance |
US7376638B2 (en) | 2003-12-24 | 2008-05-20 | International Business Machines Corporation | System and method for addressing inefficient query processing |
DE602004024293D1 (de) | 2004-06-23 | 2010-01-07 | Sap Ag | System und Verfahren zur Datenverarbeitung |
US8412713B2 (en) | 2007-03-06 | 2013-04-02 | Mcafee, Inc. | Set function calculation in a database |
US8886689B2 (en) | 2009-02-17 | 2014-11-11 | Trane U.S. Inc. | Efficient storage of data allowing for multiple level granularity retrieval |
US20100257181A1 (en) | 2009-04-01 | 2010-10-07 | Sybase, Inc. | Dynamic Hash Table for Efficient Data Access In A Relational Database System |
US8626729B2 (en) | 2009-09-28 | 2014-01-07 | Oracle International Corporation | Database index monitoring system |
US8290931B2 (en) | 2010-02-22 | 2012-10-16 | Hewlett-Packard Development Company, L.P. | Database designer |
US8515945B2 (en) | 2010-11-16 | 2013-08-20 | Sybase, Inc. | Parallel partitioning index scan |
US20120197900A1 (en) * | 2010-12-13 | 2012-08-02 | Unisys Corporation | Systems and methods for search time tree indexes |
EP2463785A1 (en) | 2010-12-13 | 2012-06-13 | Fujitsu Limited | Database and search-engine query system |
US20130103628A1 (en) * | 2011-10-20 | 2013-04-25 | Sidebar, Inc. | User activity dashboard for depicting behaviors and tuning personalized content guidance |
US8676772B2 (en) | 2011-12-09 | 2014-03-18 | Telduráðgevin Sp/f | Systems and methods for improving database performance |
-
2014
- 2014-02-12 US US14/179,307 patent/US9529865B2/en active Active
-
2015
- 2015-01-30 CN CN201510050500.0A patent/CN104834660B/zh active Active
- 2015-02-12 EP EP15154885.6A patent/EP2908258A1/en not_active Ceased
Non-Patent Citations (2)
Title |
---|
"Hybrid index for spatio-temporal OLAP operations";Byeong-seob You;《Advances in information systems lecture notes in computer science》;springer;20060101;第110-118页 * |
"Mining multi-level time interval sequential patterns in sequence databases";Ya-han Hu;《Software engineering and data mining,2010 2nd international conferenceon, IEEE》;20100819;第416-421页 * |
Also Published As
Publication number | Publication date |
---|---|
US20150227594A1 (en) | 2015-08-13 |
EP2908258A1 (en) | 2015-08-19 |
US9529865B2 (en) | 2016-12-27 |
CN104834660A (zh) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104834660B (zh) | 基于区间的模糊数据库搜索 | |
US11526799B2 (en) | Identification and application of hyperparameters for machine learning | |
CN108153520B (zh) | 软件开发方法及装置 | |
EP3948524B1 (en) | Automated identification of code changes | |
CN109992601B (zh) | 待办事项信息的推送方法、装置和计算机设备 | |
US20130173662A1 (en) | Dependency based prioritization of sub-queries and placeholder resolution | |
US20220070164A1 (en) | Code scanning jump | |
US11164567B2 (en) | Systems and methods for extraction of user intent from speech or text | |
CN109409419B (zh) | 用于处理数据的方法和装置 | |
US10599760B2 (en) | Intelligent form creation | |
CN111881183B (zh) | 企业名称匹配方法和装置、以及存储介质和电子设备 | |
CN112861026B (zh) | 用户偏好挖掘方法、装置、介质和电子设备 | |
CN113297287B (zh) | 用户策略自动部署方法、装置及电子设备 | |
CN111190905A (zh) | 数据库表格处理方法、装置及电子设备 | |
CN111913954A (zh) | 智能数据标准目录生成方法和装置 | |
CN110489032B (zh) | 用于电子书的词典查询方法及电子设备 | |
KR20230006601A (ko) | 정렬 방법, 정렬 모델의 트레이닝 방법, 장치, 전자 기기 및 매체 | |
CN116009852A (zh) | 代码构建方法、装置、计算机设备及存储介质 | |
CN112395517B (zh) | 房源搜索展示方法、装置及计算机可读存储介质 | |
US10705810B2 (en) | Automatic code generation | |
KR20210004505A (ko) | 경영 표준 규격 자동 매핑 시스템 | |
CN115511644A (zh) | 用于目标保单的处理方法、电子设备和可读存储介质 | |
CN114995877A (zh) | 一种变量配置方法及装置 | |
CN114546220A (zh) | 页面配置方法及装置、存储介质、计算机设备 | |
US11275729B2 (en) | Template search system and template search method |
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 |