CN102693266B - 搜索数据库的方法、生成索引结构的导航设备和方法 - Google Patents
搜索数据库的方法、生成索引结构的导航设备和方法 Download PDFInfo
- Publication number
- CN102693266B CN102693266B CN201210043143.1A CN201210043143A CN102693266B CN 102693266 B CN102693266 B CN 102693266B CN 201210043143 A CN201210043143 A CN 201210043143A CN 102693266 B CN102693266 B CN 102693266B
- Authority
- CN
- China
- Prior art keywords
- distance
- node
- index structure
- query
- search
- 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
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000012545 processing Methods 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000013479 data entry Methods 0.000 description 34
- 238000005259 measurement Methods 0.000 description 18
- 210000001519 tissue Anatomy 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 3
- 241000406668 Loxodonta cyclotis Species 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/29—Geographical information databases
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
-
- 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/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Remote Sensing (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Radar, Positioning & Navigation (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种在导航设备数据库中执行相似性搜索的方法,其使用了度量索引结构。该索引结构包括多个节点。当接收到查询对象(51)时,访问与至少一个对象(52,55,59,60)相关联的索引结构的节点。按照距离度量确定查询对象(51)和至少一个对象(52,55,59,60)之间的距离(65,66)。基于所确定的距离,选择性地访问该索引结构中的另一个节点。
Description
技术领域
本发明涉及在导航设备中使用的数据库搜索方法和设备。本发明尤其涉及使用索引结构搜索导航设备数据库的方法、生成索引结构的导航设备和方法。
背景技术
众所周知,导航设备执行诸如在两个位置之间的路线搜索的功能。现代导航设备还可提供附加功能,诸如起到行程向导的作用,其根据需求输出关于兴趣点(POI)的信息。这样的信息可包括街道或POI的名称,而且还可包括附加文本或多媒体信息。例如,一些导航设备可包括行程向导功能,以文本和/或多媒体的形式输出关于对象的详细解释。
鉴于在现代导航设备之中使用的数据库的大小,在该数据库中进行搜索是相当大的挑战。尤其是在执行对文本字符串、音位字符串(phoneme string)、多媒体对象,或在欧几里得(Euclidean)空间中未定义出的其它对象的搜索的时候。在2D或3D空间中定义的对象的几何坐标可使得这些对象能够基于它们的坐标被编入索引,用于基于坐标的搜索。这样的编入索引对于诸如文本字符串、音位字符串、多媒体对象,或在欧几里得空间中未定义出的其它对象更具有挑战性。
进一步地,当针对诸如文本字符串、音位字符串,或多媒体对象进行搜索时,用户可能不仅对获得准确的命中感兴趣,用户还可能会对获得关于与查询近似但不必相同的搜索结果的信息感兴趣。对于许多应用,诸如输入路线搜索的起始和终点位置、中间点或转接点,或输入POI时,用户可能不知道对该名称的正确文本表达。在数据库中依据字符串首字母搜索准确匹配的常规技术在当这些首字母中出现拼写错误时可能会失败。
进一步地,在导航设备中,由于存储空间限制所强加的约束和可用的运算时间的界限,使得实现高效的容错(fault-tolerant)的搜索尤其具有挑战性。
发明内容
据此,存在对提供能够进行容错搜索的方法和导航设备的需求。尤其是对使容错搜索能够被高效地执行的这样的方法和导航设备的需求。
这种需求通过独立权利要求中所述的设备和方法来解决。从属权利要求定义了各种实施方式。
依据一个方面,提供了一种在导航设备数据库中执行相似性搜索的方法。该相似性搜索是使用一种索引结构执行的。该数据库包括多个对象,并且该索引结构包括多个节点。接收查询对象。访问与多个对象中的至少一个对象相关联的索引结构的节点。对于所访问节点中的至少一个对象,依据距离度量(distance metric)确定在查询对象和该对象之间的距离。基于所确定的距离,选择性地访问索引结构的另一节点。
该方法使用相似性搜索。这使得模糊搜索能够被实现成,模糊搜索不仅提供关于准确匹配的信息,而且还在数据库中检索出了关于最相似对象的信息。在该方法中,确定出在查询对象和索引结构的节点中的对象之间的距离,以识别出将要访问哪个(些)其它的节点。这使得该搜索能够被高效地执行。不需要访问既不包括也不指向距查询对象的距离大于阈值的对象的节点。通过使用依据距离度量确定的距离,定量地评估出查询对象和在索引结构中包括的对象之间的相似性或非相似性。
该索引结构可被存储在导航设备的存储设备中。
该索引结构可以是度量索引结构。依据常规术语,度量索引结构是仅考虑对象之间(而非它们在多维空间中的坐标之间)的相对距离的索引,以对该索引进行分割。该索引结构可尤其是M树(M-tree)、优势点树(vantage-point tree),或依据距离度量组织的任意其它的树结构。该索引结构是按照距离函数组织的,其与用于确定查询对象和执行搜索的对象之间距离的距离相同。
使用常规术语,“距离度量”或“度量”在此被理解为指示满足自反性、对称性和三角不等性的基本条件的距离函数。
使用常规术语,术语“相似性搜索”在此被用于指示对对象的搜索,这些对象满足关于相对于查询对象的相似性或非相似性的给定准则。例子包括,搜索具有非相似性的对象,该非相似性是作为依据小于固定阈值的距离度量的距离而被测量的,或者,搜索具有最小非相似性的对象,该最小非相似性是作为依据被索引的对象当中距查询对象的距离度量的距离而被测量的。
可以但不必确定出在查询对象和由该搜索中访问的节点表示的所有对象之间的准确距离。针对沿着穿过该索引结构的路径的节点中的至少一些,可足以确定出该查询对象和该索引结构中相应的对象之间距离的下界。
这些对象可以是字符串,尤其是音位字符串或文本字符串,相应地,查询对象可以是音位字符串或文本字符串。这使得能够执行对音位字符串或文本字符串的容错搜索。当输入起始和终点位置时、当在数据库中搜索POI时、当搜索被存储在该数据库中的文本或多媒体数据时,或者在类似情况下,这样的搜索可能是有用的。
用于字符串对象的距离度量可从多个可用的字符串度量中的任意一种中被选定。例如,该距离度量可以是基于Levenshtein距离的。该距离函数还可以是Damerau-Levenshtein距离、Jaro-Winkler距离、汉明(Hamming)距离、按照Soundex距离度量所确定的距离、Needleman-Wunsch距离、Gotoh距离、Smith-Waterman-Gotoh距离、P≥1的Lp距离,或者遵守自反性、对称性和三角不等性的基本条件的任意其它字符串度量中的任意一种。
可接收文本输入并执行文本到音位的转换,以由该文本输入生成查询对象。备选地或额外地,该查询对象可以是由语音输入生成的音位字符串。
该索引结构可进一步包括关于在被访问的节点中包括的至少一个对象和该索引结构中其它对象之间距离的距离信息。对于具有父对象的任意节点,该距离信息可包括在该节点中的该对象与其父对象之间的距离。该距离信息可被存储在该索引结构中。备选地或额外地,对于指向另一个节点的任意对象,即,其不在叶节点中,该距离信息可包括该对象和在与该对象相关联的索引结构的子树中包括的任意对象之间距离的上界。该距离上界还可被称为覆盖半径,因为其表示了该对象周围的距离,在其子树中的所有对象位于该距离之内。通过将这样的距离信息包括到该索引结构中,该距离信息可在运行时被使用,而不需要在相似性搜索中对其进行计算。因此可增强搜索的性能。
基于查询对象和被访问的节点中包括的对象之间的距离,并且基于距离信息,可选择性地执行对另一个节点的访问。可执行阈值比较。基于该阈值比较,可确定是否必须搜索索引的子树。备选地或附加地,基于阈值比较,可确定是否需要计算查询对象和在该索引结构中的对象之间的准确距离。
可将查询对象与在该节点中包括的对象之间的距离和覆盖半径与搜索半径之和相比较。如果该阈值比较表明查询对象和在节点中包括的对象之间的距离大于求和值,则不需要访问该对象所指向的索引结构的子树。搜索半径可以是固定的,或者可以使其随着相似性搜索的进行而变化。
节点可包括若干个对象。针对若干个对象中的每一个,索引结构可包括在相应的对象与在该相应的对象指向的索引结构的子树中包括的任意对象之间的距离上界。
基于所确定的距离,可从相似性搜索中选择性地剪除对象。剪除可基于查询对象和在节点中的对象之间所确定出的距离,并基于对象的覆盖半径来执行。
可以迭代的方式重复确定距离和选择性地访问另一个节点的步骤。在重复这些步骤时,不需要针对节点中的对象中的每一个都计算查询对象和该节点中包括的对象之间的距离。查询对象和节点中包括的对象之间的距离可基于某种准则选择性地计算,这种准则不需要计算新的距离。确定距离和选择性地访问另一个节点可在当该另一个节点是该索引结构的叶节点时终止。
当所访问的其它节点是叶节点时,该方法可进一步包括,根据阈值比较的结果,选择性地确定该叶节点中的对象与查询对象之间的距离。根据阈值比较的结果,可选择性地确定出在该叶节点中给定的对象和查询对象之间的距离。该阈值比较可包括将第一距离和第二距离之间的差异的模数与阈值进行比较。该第一距离可以是查询对象和该叶节点的父对象之间的距离。该第二距离可以是该叶节点的父对象与该叶节点中相应的给定对象之间距离。对于在该叶节点中的任意给定的对象,可根据这样的阈值对比的结果,选择性地计算出相应的给定对象和查询对象之间的距离。从而,可进一步减少搜索时间。
在该搜索中,可识别出位于距查询对象在预确定距离之内的所有对象。该距离是按照距离度量定义的。这使得与未超出给定阈值的查询对象具有非相似性的所有对象能够被识别出并被输出给用户。
备选地或额外地,可识别出整数k>1个对象,其表示依照距离度量确定出的在该索引结构中查询对象的k个最接近的邻居,这使得在距离度量方面与查询对象最相似的k个对象可被识别出并输出给用户。
基于查询对象和相应的被识别出的对象之间的距离,可输出被识别出的对象。在输出这些识别出的对象时,可依照查询对象和相应的识别出的对象之间的距离对这些对象进行分拣。例如,为了经由光学输出单元输出,距查询对象距离最近的对象可在顶部或最左位置处输出,并且其它对象可按照距查询对象的距离增大的顺序输出。类似地,为了经由音频输出单元输出,距查询对象距离最近的对象可被首先输出,并且此后其它对象可按照距查询对象的距离增大的顺序继续输出。
依据另一方面,提供了导航设备,该导航设备包括存储设备和处理设备。存储设备存储了用于数据库的索引结构,该数据库包括多个对象,该索引结构包括多个节点。处理设备被耦接到存储设备。为了执行对查询对象的相似性搜索,该处理设备被配置成访问与多个对象中的至少一个对象相关联的索引结构的节点。该处理设备被进一步配置成,依照距离度量,确定查询对象和至少一个对象之间的距离。该处理设备被进一步配置成,基于所确定出的距离,选择性地访问索引结构的另一个节点。
这样的导航设备使得模糊搜索能够被实现成,不仅提供关于准确匹配的信息,而且在该数据库中检索关于最相似对象的信息。在该导航设备中,确定在查询对象和索引结构的节点中的对象之间的距离,以识别出将要访问其它的哪个(些)节点。这使得搜索能够被高效地执行。不需要访问既不包括也不指向具有距查询对象的距离大于阈值的对象的节点。通过使用按照距离度量确定的距离,定量地评估查询对象和索引结构中的对象之间的相似性或非相似性。
这些对象可以是音位和/或文本字符串。
该索引结构可以是度量索引结构。
该导航设备可包括输入单元。处理设备可被耦接到该输入单元,以从其中接收查询对象,或者基于在输入单元处接收的输入生成查询对象。该处理设备可被配置成执行文本到音位转换,以生成查询对象。
该导航设备可包括输出单元。处理设备可被配置成控制该输出单元,使得在相似性搜索中找到的多个对象经由输出单元输出。处理设备可被配置成控制该输出单元,使得按照查询对象和相应的输出对象之间的距离,对这些输出对象进行分拣。
该处理设备可被配置成识别出具有距查询对象的距离小于固定搜索半径的所有对象,该距离是依照距离度量确定的。该处理设备可备选地或额外地被配置成识别出k>1个对象,这些k>1个对象是查询对象的k个最接近的邻居。
该处理设备可被配置成依照任意一个方面或任一实施例执行相似性搜索方法。
依据另一个方面,提供了一种生成导航设备数据库的度量索引结构的方法。该数据库包括多个对象。在该方法中,生成索引结构的目录节点,其包括指向该索引结构的其它节点和该索引结构的叶节点的指针。生成节点包括,针对多对对象,分别确定出该对对象的对象之间的距离,从而确定出多个距离。这些距离按照距离度量被分别地确定出。基于该多个距离,识别出将要被包括在目录节点中的对象和将要被包括在叶节点中的对象。
使用这种方法,索引结构被生成,其可被用于相似性搜索方法,也可以用于任意一方面或任一实施例的导航设备中。依照所确定出的多个距离来组织所生成的度量索引结构,该多个距离是对象之间的相对距离。这使得度量索引结构也能够针对并非通过在多维空间中的坐标定义的对象来设置。
这些对象可以是音位字符串,或者字母数字字符串。
在生成索引结构时,可从用于字符串度量的多个距离定义中的任意一个中选择出距离度量。例如,距离度量可以是基于Levenshtein距离的。该距离函数还可以是Damerau-Levenshtein距离、Jaro-Winkler距离、汉明(Hamming)距离、按照Soundex距离度量所确定的距离、Needleman-Wunsch距离、Gotoh距离、Smith-Waterman-Gotoh距离、P≥1的Lp距离,或者遵守自反性、对称性和三角不等性的基本条件的任意其它字符串度量中的任意一种。
针对在目录节点中包括的对象,该方法可包括存储关于相应的对象和在该对象所指向的索引结构的子树中包括的任意对象之间的距离的上界。该上界,或覆盖半径,可被存储在该索引结构中。
针对在节点中包括的具有父对象的对象,该方法可备选地或额外地包括存储相应的对象与其父对象之间的距离。
在该方法中,索引结构可以迭代的方式生长。该方法可包括将额外的对象插入节点中。为了这种目的,可识别出将要被插入对象所在的节点。识别节点可包括确定将要插入的对象和该索引结构的目录节点中的对象之间的距离。
该方法可进一步包括分裂节点。为了这种目的,在插入对象之后,可确定出在该节点中的对象的个数是否大于对象的固定的最大个数。如果该个数超过最大个数,则节点分裂。分裂节点可包括,从将要被包括在新目录节点中的节点中选择出对象,以及将对象指派给两个新的叶节点中的一个。可进行分裂节点,使得在新的目录节点中的两个对象的两个覆盖区域之间的重叠减小到阈值以下,或者被最小化。
依据另一个方面,提供了用于导航设备数据库的度量索引结构。该度量索引结构包括目录节点,其包括指向该索引结构的其它节点和叶节点的指针。这些节点中的至少一些节点可包括距离信息,其代表关于该索引结构的对象之间依据度量确定的距离的信息。至少目录节点可包括该目录节点中的对象和相应的对象的索引结构的子树中包括的任意对象之间的距离的上界。
应该理解,以上所提及的和那些将要在下面解释的特征不仅可被用于所指示出的各个组合中,而且还可以用在其它组合中,或单独使用。
附图说明
在结合附图阅读以下实施方式的详细描述时,各实施方式的前述和其它特征将会变得更加清楚。在附图中,用相同的附图标记表示相同的元件。
图1是导航设备的示意性框图;
图2是索引结构的示意性表达;
图3和图4是在索引结构的节点中的数据条目的示意性表达;
图5是使用相似性搜索的方法的流程图;
图6是执行相似性搜索的方法的流程图;
图7是对用于解释图6的方法的数据库对象的示意性表达;
图8是对用于解释图6的方法的索引结构的示意性表达;
图9是使用相似性搜索的方法的流程图;
图10是生成索引结构的方法的流程图;
图11和图12是用于解释图10的方法的索引结构的示意性表达。
具体实施方式
图1示意性地说明了依据一个实施例的车辆导航设备1。该导航设备1包括依据例如存储在存储器中的控制指令来控制该导航设备1的操作的处理设备2。该处理设备2可包括例如具有一个或多个微处理器、数字信号处理器或者专用集成电路形式的中央处理单元。导航设备1进一步包括存储设备3,其可以是可擦除或不可擦除存储介质或者存储器。该存储设备3可包括诸如随机访问存储器、闪存或硬盘的不同类型的存储器或存储介质中的任意一种或任意组合,还可以包括诸如高密度磁盘(CD)、DVD、存储卡等可移除存储器。导航设备1还可包括用于将信息输出给用户的输出接口4。该输出接口4可包括光学输出设备、音频输出设备或者其组合。该导航设备1还包括输入接口5,其使得用户能够输入信息。尤其是,该输入接口5可使得用户能够输入文本信息或者语音信息。
导航设备可包括附加组件,诸如位置传感器和/或无线接收机和/或车辆接口。位置传感器可适用于确定车辆的当前位置,在该车辆上安装有导航设备1。该位置传感器可包括GPS(全球定位系统)传感器、伽利略(Galileo)传感器、基于移动通信网络的位置传感器,以及类似传感器。无线接收机可被配置成接收用于更新存储在存储设备3中的数据库的信息。车辆接口可使得处理设备2能够从其它车辆系统中获得信息,或者经由该车辆接口获得车辆状态信息。该车辆接口可包括,例如,CAN(控制器局域网)接口或MOST(媒体定向设备传输)接口。
存储设备3存储了包括多个对象的数据库。该多个对象可包括文本或音位字符串。例如,该数据库可包括代表道路名称的对象、代表兴趣点(POI)名称的对象,和/或代表关于道路或POI的附加信息的对象。这样的信息可具有文本或音位字符串或多媒体对象的形式,或可包括文本或音位字符串或多媒体对象。
存储设备3存储了该数据库的索引结构。在导航设备1的应用中,处理器2使用该索引结构执行相似性搜索。该处理器2可使用在输入接口5接收的输入作为查询对象,或可执行关于输入的附加操作,以生成查询对象。然后处理器2使用该索引结构,执行对查询对象的相似性搜索。该相似性搜索包含计算该查询对象和存储在该数据库中的对象之间的距离。在此所使用的“计算”可以不同方式实现,包括查表操作。该距离提供了对查询对象和索引结构中的对象的非相似性的定量测量。在该搜索中找到的若干个最相似对象经由输出接口4被输出给用户。例如,处理器2可生成关于光学输出接口4的列表,其中,在具有距查询对象距离最近的索引结构中的对象按照通过它们距查询对象的距离所确定出的顺序列出。
在逻辑上该索引结构可与数据库分开。备选地,该数据库可与索引结构合并。
该索引结构可使用任意适当的技术来实现。为了说明而非构成限制,该索引结构可使用SQ Lite来实现。该索引结构可被实现成在数据库系统中,尤其是在相关数据库系统中,由用户定义的索引结构。该相关数据库可包括用于文本字符串或音位字符串的表格,以及用于多对文本字符串或多对音位字符串之间的距离的另一个表格。
该数据库的索引结构可被组织成索引树。该索引结构可包括多个节点,这些节点中的至少一些为目录节点,其包括指向其它节点的指针,并且至少一些其它节点为叶节点,其不包括指向其它节点的指针。这些节点中的每一个节点可与至少一个对象并且典型的是若干个对象相关联。针对在目录节点中包括的对象,该目录节点可存储指向与这些对象中的每一个对象相关联的相应的根部的指针。
存储在存储设备3中的索引结构是度量索引结构,其可使用距离度量被搜索出来。而且,该索引结构也是依照距离度量组织的。即,该索引结构基于数据库的对象之间的相对距离被分割成子树,数据库的对象之间的相对距离是根据距离度量确定的。
依据通用的术语,“距离度量”或者“度量”在此是指针对非空集合M的对象定义的距离测量,该非空集合M满足以下条件:
自反性(也称为对不可辨别性的识别):
d(x,y)=0当且仅当x=y时; (1)
对称性:
d(x,y)=d(y,x) (2)
三角不等性:
d(x,z)≤d(x,y)+d(y,z) (3)
当满足以上基本条件(1)至(3)时,紧跟着,距离函数也满足正性基本条件:
d(x,y)≥0 (4)
集合M和度量d的重数(M,d)也称为度量空间。
组织索引结构所依据的并且还被用于在索引结构中执行搜索的度量可以从各种定义中选出,尤其取决于数据库中的对象。例如,对于文本字符串或语音字符串的对象,Levenshtein距离定义了度量,并且可在建立索引结构时以及在索引结构中执行相似性搜索时使用。Levenshtein距离也被称为编辑距离。在两个字符串之间的Levenshtein距离被定义成,通过对单个字符进行插入、删除或者替换的可允许的编辑操作,将一个字符串变换成另一个所需的最小编辑次数。其它度量也可被用于组织索引结构和在索引结构中执行相似性搜索时计算距离。
也可使用其它度量。例如,距离函数可被选择为Damerau-Levenshtein距离、Jaro-Winkler距离、汉明距离、依据Sondex距离度量确定的距离、Needleman-Wunsch距离、Gotoh距离、Smith-Waterman-Gotoh距离、p≥1的Lp距离,或遵守自反性、对称性和三角不等性的基本条件的任意其它字符串度量中的任意一种。
存储在存储媒介3中的索引结构不仅可包括对象和指向定义了搜索树的其它节点的指针,而且还可额外地包括指示索引结构中对象之间距离的距离信息。在执行搜索时,这样的距离信息可从索引结构中检索出来。这样的距离信息可尤其被用于从相似性搜索中剪除对象或节点,正如在下面将详细描述的那样。
图2是索引结构10的示意性表达。虽然在图2中被示出为类似树的结构,但是索引结构通常可以任意适当的格式存储,例如,作为相关数据库中的用户定义的索引结构。
该索引结构包括目录节点11-13以及叶节点14-17。目录节点11-13中的每一个节点包括指向其它节点的指针。每一个指针可分别与在相应的节点中包括的对象相关联。例如,根节点11可包括与第一对象相关联的数据条目21和与第二对象相关联的数据条目22。数据条目21可包括指向目录节点12的指针,其为第一对象的子树的根部。数据条目22可包括指向目录节点13的指针,其为第二对象的子树的根部。
目录节点12可包括与该数据库的其它对象相关联的数据条目23、24。数据条目23、24可分别包括指向另一个节点的指针。在图2所示的结构中,数据条目23、24分别包括指向叶节点14和15的指针。可实现目录节点的较大分层。类似地,目录节点13可包括与数据库的其它对象相关联的数据条目25、26。数据条目25、26可分别包括指向另一个节点的指针,诸如,分别指向叶节点16和17的指针。
叶节点14-17可分别包括与数据库的一个或多个对象相关联的数据条目。例如,叶节点14被示出为包括与数据库的三个对象相关联的数据条目27-29。
在索引结构中,搜索树按照距离度量被分割。为了这种目的,可选出由数据21代表的第一对象和由数据22代表的第二对象,使得在具有根节点12的第一子树中包括的所有对象位于围绕第一对象具有第一覆盖半径的覆盖区域之内,并且在具有根节点13的第二子树中包括的所有对象位于围绕第二对象具有第二覆盖半径的覆盖区域之内。换句话说,该第一覆盖半径可以是节点12、14和15中的任意一个节点所代表的任意对象与数据条目21代表的对象之间距离的最大值,数据条目21是该子树的父对象。第二覆盖区域半径可以是节点13、16和17中任意一个节点所代表的任意对象与数据条目22代表的对象之间距离的最大值,数据条目22是该子树的父对象。
在根节点11中的第一对象和第二对象,以及相关联的子树中的对象,被选择为使得第一和第二覆盖区域具有重叠,该重叠优选地尽量小。进一步,在根节点11中的第一对象和第二对象以及在相关联的子树中的对象可被选择为,使得在第一对象和具有根部12的子树中包括的任意对象之间的第一最大距离,以及在第二对象和具有根部13的子树中包括的任意对象之间的第二最大距离保持尽量小。这样,该索引结构按照对象之间依据距离度量确定的接近程度被分割。
用于组织以上索引结构所列出的准则不仅适用于根节点11,而且还适用于任意目录节点12、13。即,将对象组织到目录节点和叶节点中,旨在减小目录节点中不同对象的覆盖区域的重叠,并进一步旨在减小覆盖区域尺寸。在下面参考图10至图12将描述用于生成这样的索引结构的系统性方法。
在一些实施例中,索引结构的目录节点可包括关于在该索引结构中包括的对象之间距离的信息。在目录节点中的数据条目21-26可分别包括对象与该对象指向的子树中包括的任意对象之间的距离的上界。该上界可以是这些距离的最大值。例如,数据条目21可包括数据条目21所代表的第一对象和节点12、14和15中的任意对象之间的距离的上界。数据条目22可包括数据条目22所代表的第二对象和节点13、16和17中的任意对象之间的距离的上界。数据条目23可包括数据23所代表的对象和节点14中的对象中任意一个对象之间距离的上界,等等。基于该上界,可在相似性搜索中执行剪除。
对于在相应的节点中的任意对象,所有具有父对象的节点中的数据可进一步包括,关于该对象和其父对象之间的距离的信息。这种信息还可在相似性搜索中被用于估计距离。
该索引结构可尤其被组织成由P.Ciaccia、M.Patella和P.Zezula所开发的M树(M-tree)。也可以使用按照距离度量组织的其它索引结构。例如,该索引结构可以是优势点树。
图3示出了用于与目录节点中包括的对象相关联的数据条目31的示范性数据结构。该图所示出的是,例如,在M树中使用的示范性数据条目。数据条目31包括对象Or。备选地,在数据31中可包括该对象的特征值。备选地,在数据31中可包括该对象的标识符。
数据条目31还包括指向该对象Or子树的根节点的指针ptr(T(Or))。
如果目录节点不是该索引结构的根节点,则数据条目31可进一步包括对象Or和其父对象P(Or)之间的距离d(Or;P(Or))。通过将这样的距离包括在索引结构中,值d(Or;P(Or))可被用于估计距离和/或用于剪除搜索。在运行时可提高相似性搜索的效率。
数据条目31可进一步包括半径r(Or),其是对象Or和具有根节点T(Or)的子树中任意对象之间的距离的上界。半径r(Or)可被定义为这样的距离的最大值:
r(Or)=maxj d(Oj;Or) (5)
其中,该最大值是在指针ptr(T(Or))指向的子树的所有对象Oj之中确定出来的。
图4示出了用于与在索引结构的叶节点中包括的对象相关联的数据条目32的示范性数据结构。所说明的是在M树中使用的示范性数据条目。数据条目32包括对象Oj。备选地,在数据32中可包括该对象的特征值。备选地,在数据32中可包括该对象的标识符。
数据条目32可进一步包括相应的对象Oj和其父对象P(Oj)之间的距离d(Oj;P(Oj))。通过将这样的距离包括在该索引结构中,值d(Oj;P(Oj))可被用于估计距离和/或用于剪除搜索,而不需要在搜索过程中计算距离。
可使用其它数据结构。例如,在数据条目31或数据条目32中指示的不同字段条目不必以彼此接近的方式存储。在相关数据库中用户定义的索引结构可被用于存储索引结构。
图5是方法33的流程图,其可由处理器2使用该索引结构来执行。
在34,接收输入。该输入可以是经由输入接口4接收的用户输入。备选地,该输入可通过该车辆的其它系统或设备被提供给处理器2,或者可从该车辆的外部接收。该输入可以是文本字符串。
在35,执行文本到音位的转换。所获得的音位字符串作为查询对象。
在36,使用索引结构执行相似性搜索。该索引结构是按照距离度量组织的度量索引结构。该索引结构可被配置成如参考以上图2至图4描述的那样。为执行相似性搜索,可依据距离度量确定出查询对象和在索引结构中的对象之间的距离。
在37,输出在搜索中找出的最相关对象。这些最相关对象可以是查询对象的k>1个最接近的邻居,即,在被索引的对象当中距该查询对象距离最小的k个对象,这些距离是依据距离度量确定的。备选地,这些最相关对象可以是在索引结构中距查询对象距离小于预定阈值的所有对象。
在37,可执行输出,使得多个对象被输出。这些对象可以按照所确定的它们各自距查询对象的距离顺序被输出。
图5是用于执行相似性搜索的方法40的流程图。该方法40可通过处理器2执行。该相似性搜索是使用按照距离度量d(·;·)组织的索引结构执行的。如上所述,取决于对象类型,可选择出不同距离度量中的任意一个。该索引结构可以被配置成如图2至图4所描述的那样。
在41,接收查询对象。接收查询对象可包括对输入进行处理,诸如执行文本到音位转换。
在42,访问索引结构的节点N。方法40的步骤可沿着树的路径被迭代地重复。在第一迭代中,节点N可以是索引结构的根节点。在后续迭代中,节点N可以是索引结构的目录节点。
在43,选择出在节点N中的对象Or。不同对象Or可按照这些Or被包括在节点N中的顺序被选择出。
在44,确定出查询对象Q和在节点N中被选择出的对象Or之间的距离d(Or;Q)。对于文本或音位字符串,确定距离可包括计算Levenshtein距离或者依据任意其它字符串度量的距离。在44中是使用分割索引结构所依据的距离度量来确定距离的。
在45,确定出距离d(Or;Q)是否大于对象Or的覆盖半径r(Or)与搜索半径R的和。该搜索半径R可以是固定的半径。备选地,该搜索半径R还可以随着相似性搜索的继续被动态地调节。例如,该搜索半径R可在k个最接近的邻居的搜索中被调节,使得R对应于查询对象与到目前为止检索的第k个最接近的邻居之间的距离。
如果确定出,距离d(Or;Q)大于覆盖半径r(Or)与搜索半径R的求和值,则该方法从45前进到46。
在46,从搜索中剪除在对象Or的子树中的所有对象。通过将覆盖半径r(Or)定义成该子树中的任意对象和对象Or之间的距离的上界,如果距离d(Or;Q)大于r(Or)与R的求和值,在对象Or的子树中的对象距查询对象Q的距离不可能小于或等于搜索半径R。通过剪除该搜索,可避免假性(spurious)搜索步骤。
如果确定出距离d(Or;Q)不大于覆盖半径r(Or)与R的求和值,则该方法从45前进到47。
在47,在对象Or的子树中继续搜索。为了这种目的,访问对象Or的子树的根节点T(Or)。基于在45的条件测试,选择性地访问该根节点。为了继续在该子树中的搜索,在该子树中可重复步骤42-48,直到达到叶节点为止。只有沿着从索引结构的根部到叶节点的路径,沿着该路径所贯穿的任意对象Or不满足在45所检查的条件,才能达到叶节点。
如果在47达到了叶节点,则可确定出在该叶节点中的对象Oj和查询对象Q之间的距离d(Oj;Q)。如果
d(Oj;Q)<R, (6)
则在相关的被索引对象的列表中可包括对象Oj,用于后续输出。如果执行k个最接近的邻居搜索,则可更新搜索半径R,即,如果满足等式(6)且在索引结构中识别出的相关对象的列表中包括对象Oj,则搜索半径R可被减少。如果在叶节点中没有找到满足等式(6)的对象,则该方法前进到48。
在48,确定出在节点N中是否存在另一个对象Or。如果存在另一个对象,则该方法返回43,选择这些对象Or中的另一个。
如果确定出在节点N中没有其它对象,则该方法前进到49。在49,输出所识别出的对象。执行该输出可使得多个对象被输出。在相似性搜索中找出的这些对象可按照通过它们各自距查询对象Q的距离确定的顺序被输出,由于该距离在前面的步骤44或步骤47已经被确定出,该距离可被用于将所识别出的对象组织到按顺序整理的列表中,用于后续输出。备选地,在搜索过程中确定的距离可被登记,用于后续按照它们距查询对象Q的距离对这些对象进行分拣。
在方法40中,基于查询对象和被索引的对象之间的距离,执行相似性搜索。这使得,甚至在欧几里得(Euclidean)空间中未定义该查询对象和被索引的对象时,也能够执行该搜索。相似性搜索40还可针对在多维矢量空间中所定义的对象执行。使用在度量索引结构中的相似性搜索实现了容错搜索。
在该方法中,基于查询对象和索引结构的对象之间的距离,可选择性地剪除搜索。剪除可基于在方法40的步骤45中验证的条件进行,或者基于在下面描述的备选的或额外的条件进行。
为了进一步说明,参考图7和图8。图7是对对象的示意性表达50,而图8是对索引结构70的示意性表达。
在图7中示出的对象包括对象52和55,其被包括在索引结构的根节点中。位于对象52的子树中的对象位于距对象52小于或等于覆盖半径53的距离处。位于对象53的子树中的对象位于距对象55小于或等于覆盖半径56的距离处。正如示意性地说明的,在对象52的子树中的对象位于第一覆盖区域54中。在对象55的子树中的对象位于第二覆盖区域57中。该索引结构被组织成,使得覆盖区域54和57具有较小的重叠。在与对象52相关联的子树中的对象被聚合在对象52周围,而在与对象55相关联的子树中的对象被聚合在对象55周围。
对象52的子树的根节点包括对象59和60。包括对象59和60的节点是目录节点。与对象59相关联的指针指向包括接近于对象59的对象(如,对象61)的叶节点。与对象60相关联的指针指向包括接近于对象60的对象(如,对象62)的叶节点。
在与对象55相关联的子树中包括对象63、64。
图8示出了索引结构70,其对应于图7的表达。在图8中,对象被标记为A、B、C、D、E、F、G、H、I、J。
该索引结构包括具有对象A和B的根节点71。在该根节点71中的对象A对应于例如在图7中的52所指示的对象。在根节点71中的对象B对应于例如在图7中的55所指示的对象。
该索引结构包括目录节点72,其是用于与对象A相关联的子树的根节点。节点72包括对象C和D。在节点72中的对象C对应于例如在图7中的59所指示的对象。在节点72中的对象D对应于例如在图7中的60所指示的对象。
该索引结构包括叶节点74,其以对象C作为父对象。该节点74包括对象G和H。在节点74中的对象G对应于例如在图7中的61所指示的对象。该索引结构包括叶节点75,其以对象D作为父对象。节点75包括对象I和J,在节点75中的对象I对应于例如在图7中的62所指示的对象。
该索引结构包括在与对象B相关联的子树中的附加节点73。
假设针对查询对象51执行了邻近搜索,可使用查询对象和索引中各个对象A-J之间的距离,结合在索引结构中包括的距离信息,剪除该搜索。在图7中的58示意性地指示了搜索半径R。
当搜索方法40开始时,访问索引结构的根节点71。在66示出的查询对象Q和对象B之间的距离d(Q;B)大于搜索半径58和覆盖半径56的求和值。因此,在对象B的子树中不执行搜索。
在65示出的查询对象Q和对象A之间的距离d(Q;A)小于在58指示的搜索半径和在53所指示的对象A的覆盖半径的求和值。因此,在对象A的子树中继续搜索。通过对具有根节点72的子树重复方法40的步骤42-49,对象G(图7中由符号61表示)和I(图7中由符号62表示)被识别为位于距查询对象51小于或等于搜索半径的距离处。
通过识别这些对象,实现了容错搜索,该搜索依据距离度量返回所测量出的与查询对象具有最小非相似性性的对象。
可通过基于覆盖半径剪除搜索而高效地执行相似性搜索。在索引结构中包括的附加数据可被用于进一步增强搜索效率。例如,如果在索引结构中存储了对象和它们各自的父对象之间的距离,则该信息可被用于减少在运行时需要执行的距离运算次数。
例如,当在方法40的步骤42中所访问的节点N是目录节点,而不是索引结构的根节点时,只有满足以下条件时,步骤44至47可被选择性地执行:
|d(Q;P(Or))-d(Or;P(Or))|≤r(Or+R), (7)
在此P(Or)表示节点对象Or的父节点。使用作为度量的距离d(,),如果不满足等式(7),则三角不等性确保了在对象Or的子树中的对象都不具有距查询对象Q为R或更少的距离。如果不满足等式(7),则可剪除对象Or的子树。
可验证等式(7)而不需要任何额外的距离运算。对于父节点,在方法40的前面的迭代中确定出了d(Q;P(Qr))的量。该d(Q;P(Qr))的量可从索引结构中读出。通过取决于是否满足等式(7)的条件,选择性地执行在方法40的步骤44的运算,可减少在运行时运算量繁重的距离确定。
为了进一步说明,当在方法40的步骤47中访问叶节点时,只有当满足以下条件时,才可选择性地确定在叶节点中的对象Oj和查询对象Q之间的距离:
|d(Q;P(Oj))-d(Oj;P(Oj))|≤R (8)
其中P(Oj)表示该叶节点的父节点,该父节点中包括对象Oj。由于d(,)是度量,如果不满足等式(8),则三角不等性确保Oj和查询对象Q不可能具有R或更小的距离。如果不满足等式(8),则不需要确定d(Q,Oj)。
可验证等式(8)而不需要任何额外的距离运算。对于父节点,在方法40前面的步骤中确定出了d(Q;P(Oj))的量。该d(Q;P(Oj))的量可从索引结构中读出。通过只有在满足等式(8)的条件时,选择性地计算d(Q;P(Oj)),可减少在运行时运算量繁重的距离确定。
依据以上参考图1至图8所描述的实施例,用于执行相似性搜索的设备和方法可尤其被用于当对象是文本字符串、音位字符串或多媒体对象时。这些设备和方法可被用于识别在索引结构中与音位字符串具有最小非相似性的对象。该索引结构可被用作音位字符串的过滤器。
图9是方法80的流程图表达,其中可使用相似性搜索。
在81,识别器基于输入确定出音位字符串。该输入可以是文本字符串。向音位字符串的转换可以基于与彼此相似的音位相对应的不同音位簇,使得使用距离度量确定的簇中的音位之间的距离在阈值以下。
在82,使用索引结构过滤音位字符串。该音位字符串可通过在索引结构中执行相似性搜索来进行过滤,正如以上参考图1至图8中的任意一个附图描述的。在一些实现中,可确定出距查询对象的距离小于或等于阈值的对象。在备选实现中,可确定出查询对象的k个最接近的邻居对象。
在83,对音位进行过滤的结果被提供给拼写匹配器。
在用于执行相似性搜索的这些方法中的任意一个和以上描述的导航设备中,索引结构可以是度量索引结构。在用于执行相似性搜索的方法中的任意一个和以上描述的导航设备中,索引结构可对应于平衡的搜索树。在用于执行相似性搜索的这些方法中的任意一个和以上描述的导航设备中,索引结构可被配置成使得每个目录节点和每个叶节点的条目的个数是固定的。
现将参考图10至图12解释生成具有这些属性的索引结构的方法。
图10是用于生成索引结构的方法90的流程图。该方法90可与相似性搜索分开地执行。尤其是,在预处理用于导航设备的数据时,可执行方法90。该索引结构可由服务器计算机在中心地点构建,然后可被部署到多个导航设备中。
方法90可通过将附加对象后续添加到索引结构,以自下至上的方式构建索引结构。该索引结构可使用距离度量构建,随后该距离度量还将在执行相似性搜索时被使用。
被插入的对象可以是字符串,尤其是音位字符串或者文本字符串。
在方法90中,当在节点中出现溢出状况时,可通过插入对象和通过分裂节点来构建索引结构。当节点被分裂时,生成新的目录节点。
在91,检索出将要被插入索引结构的对象Oi。该对象可以是音位字符串或文本字符串。
在92,访问索引结构的节点N。如果只存在一个节点,则访问该节点。如果索引结构已经包括目录节点,则访问最高目录节点,即,该结构的根节点。
在93,确定出节点N是否是叶节点。如果该节点是叶节点,则该方法在98继续。否则,该方法在94继续。
在94,确定出在将要被插入的对象Oi和在该节点中包括的所有对象Ok之间的距离d(Ok;Oi)。该距离是依据距离度量分别地确定出的。
在95,确定出在节点N中包括的对象Ok,对于该对象Ok,d(Ok;Oj)为最小。
在96,选择出新的节点N,其为对象Ok的子树的根节点。访问该节点N。
在97,确定出节点N是否是叶节点。如果该节点N不是叶节点,则该方法返回94。否则,该方法在98继续。
在98,确定出在插入对象之后节点N的大小是否将超过阈值,该阈值对应于所允许的节点的最大条目个数。如果确定出不会超过所允许的最大条目个数,则在99将对象Oi插入该节点。然后该方法返回91。
如果在98确定出,节点N已经具有允许的最大条目个数,则该方法在99继续。在99,节点N被分裂成一对节点。通过分裂节点N,生成两个新的叶节点。同时,生成目录节点,其包括具有指向这两个新的叶节点的指针的两个对象。对象Oi可被插入这两个新叶节点中的一个,或者被插入新的目录节点。然后该方法返回91。
图11和图12说明了,在达到在节点中所允许的最大条目个数时叶节点的分裂。
图11示出了索引结构110,其包括具有对象A和B的目录节点11、具有对象C、D、G的叶节点112,以及具有对象E和F的另一个叶节点113。
假设插入新的对象I,对于该对象I,d(A;I)<d(B;I),则方法90确定该对象将要被插入从节点A开始可到达的叶节点。如果对于节点所准许的条目最大数量对应于三个对象,则不能将对象简单地插入节点112。在这种情况下,节点112分裂。
图12示出了节点112分裂之后的索引结构110。生成了两个新的叶节点115和116。进一步地,生成新的目录节点114。在叶节点112中包括的对象C和D被晋升为目录节点中的对象。在M树术语中,对象C和D被晋升为路线设定(routing)对象。对象G被添加到以对象C作为父对象的叶节点115。对象I被添加到以对象D作为父对象的叶节点116。
当在方法90的步骤100处节点被分裂时,可使用不同的技术,以选择出被晋升为目录节点的对象。例如,对于M树,可使用以下实现:
在一种实现中,可随机选择出被晋升到目录节点的对象。
在另一种实现中,对被晋升到目录节点的多对对象进行取样。对于多个对中的任意一对,在该节点中包括的另一对对象被分割成两个新的叶节点。可将对象分配给新的叶节点中的一个,对于该叶节点,该对象和该叶节点的父对象之间的距离较小。当完成分割时,确定出得到的覆盖半径。该覆盖半径依据等式(5)来确定。对于被晋升到目录节点的不同对对象,得到不同的覆盖半径。然后可分裂该节点,使得经取样的对象对中的一对被添加到目录节点,对于该对象对,两个覆盖半径的最大值具有经取样的被晋升的对象对当中的最小值。
在另一种实现中,对在该节点中包括并且原则上可被添加到目录节点中的所有可能的对象对O1和O2进行取样。在分裂前的节点中包括的另一对对象被分割,如上所述。即,这些对象可被分配给新的叶节点中的一个,对于该节点,该对象和该叶节点的父对象之间的距离较小。对于可能的对象对中的任意一对,确定出覆盖半径r(O1)+r(O2)的求和值。然后,导致覆盖半径的求和值最小的对象对可被添加到目录节点中。其它对象可分别被分配给新的叶节点中的一个,对于该节点,该对象和该叶节点的父对象之间的距离较小。
在另一种实现中,对在该节点中包括的并且原则上可被添加到目录节点的所有对可能的对象O1和O2进行取样。在该节点中包括的其它对象在分裂之前如上所述地被分割。即,这些对象可被分配给新的叶节点中的一个,对于该叶节点,该对象和该叶节点的父对象之间的距离较小。对于要被晋升的可能的对象对中的任意一对,确定出两个覆盖半径之中的最大值max(r(O1),r(O2))。然后,使得覆盖半径的最大值最小的对象对可被添加到目录节点中。其它对象可被分别地分配给新的叶节点中的一个,对于该叶节点,该对象和该叶节点的父对象之间的距离相应地较小。
在另一种实现中,确定出在叶节点中距要被插入的对象具有最大距离d(Ok;Oi)的对象Ok。然后该对象Ok和新的对象Oi可被晋升到目录节点。其它对象可分别被分配到新的叶节点中的一个中,对于该叶节点,该对象和该叶节点的父对象之间的距离较小。
虽然以上参考图10至图12已经描述了生成被配置成M树的索引结构的方法,但是在其它实施例中可使用其它度量索引结构和用于构建相同方式的方法。例如,可使用优势点树(vantage-point tree)。
虽然已经详细描述了依据实施例的设备和方法,但是在其它实施例中可实现变形。例如,虽然诸如覆盖半径或父对象和子对象之间距离的距离信息可被存储在索引数据中,但是这样的数据也可在运行时被计算出来。
为了进一步说明,虽然已经解释了索引树和它们的节点的示范性结构,但是任意适当的数据结构可被用于实现该索引树。例如,在相关数据库中该索引树可被存储成用户定义的索引结构。在这种情况下,可提供表格,其包括文本字符串或音位字符串。可提供另一表格,其包括文本字符串对或音位字符串对之间的距离。
为了进一步说明,虽然使用诸如“在该索引结构中的对象”这样的措辞已经描述了索引结构,但是像这样的对象并不需要被结合到索引结构中。相反,该索引结构可包括指向该对象的标识符或指针,而不是该对象本身。
为了进一步说明,虽然在对位于距查询对象固定搜索半径内的对象的搜索的上下文中,或者在对k个最接近的邻居的搜索的上下文中已经描述了相似性搜索,但是也可使用度量索引结构实现其它的相似性搜索。虽然在特定距离度量或特定应用的上下文中已经描述了一些搜索,诸如,对音位或文本字符串的搜索,但是本发明的实施例并不限于此。
本发明的实施例可被用于车辆导航设备中。
Claims (13)
1.一种使用索引结构(10;70)在导航设备数据库中执行相似性搜索的方法,所述数据库包括多个对象,所述索引结构(10;70)包括多个节点(11-17;71-75),
所述方法包括:
在导航设备的车辆接口和输入接口之一处接收查询对象(51),所述导航设备进一步包括存储索引结构的存储设备;
访问所述索引结构(10;70)的第一节点(11-13;71-73),其中,存储在所述数据库中的所述多个对象包括多个音位字符串,所述索引结构中包括多个节点,所述多个节点包括叶节点,每一个叶节点与至少一个音位字符串相关联,其中,所述索引结构还包括关于所述至少一个对象和所述索引结构中的其它对象之间距离的距离信息,其中所述第一节点与所述多个对象中的至少一个对象(52,55,59,60)相关联,对于所述多个对象中的每一个,所述距离信息包括,相应的对象和与所述相应的对象相关联的所述索引结构的子树中包括的任意对象之间的距离的上界;
对于与所述第一节点(11-13;71-73)相关联的所述至少一个对象(52,55,59,60)中的每个对象,分别确定所述查询对象(51)和所述对象之间的距离(65,66),所述距离(65,66)按照距离度量被分别确定;
对于所述多个对象中的每一个,确定所述查询对象与相应的对象之间的距离是否小于固定的预定搜索半径和存储在所述索引结构的所述第一节点中的相应的对象的覆盖半径的求和值;以及
基于所述距离信息和所确定的距离(65,66),选择性地访问所述索引结构(10;70)中的第二节点(12-17;72-75)。
2.如权利要求1所述的方法,
其中所述查询对象(51)为音位字符串或文本字符串。
3.如权利要求2所述的方法,
其中所述接收所述查询对象(51)包括接收文本输入和执行文本到音位的转换。
4.如权利要求1所述的方法,
其中所述查询对象(51)为音位字符串或文本字符串,并且
其中所述接收所述查询对象(51)包括接收文本输入和执行文本到音位的转换。
5.如权利要求1所述的方法,
其中,基于所确定的距离(65;66),从所述相似性搜索中选择性地剪除对象。
6.如权利要求1所述的方法,
其中,所述确定距离(65;66)和选择性地访问所述第二节点(12-17;72-75),在所述第二节点(12-17;72-75)是所述索引结构(10;70)的叶节点(14-17;74,75)时终止。
7.如权利要求1所述的方法,
其中,识别出根据所述距离度量确定的位于距所述查询对象(51)预定的距离(58)内的所有对象。
8.如权利要求1所述的方法,
其中,识别出整数k>1个对象,其代表根据所述距离度量确定的所述查询对象(51)的k个最接近邻居。
9.如权利要求8所述的方法,
其中,以基于所述查询对象(51)和相应的被识别的对象之间的距离所确定的顺序,输出所述被识别的对象。
10.一种导航设备,包括:
存储设备(3),其存储用于包括多个对象的数据库的索引结构(10;70),所述多个对象包括多个音位字符串,所述索引结构(10;70)包括多个节点(11-17;71-75),所述多个节点包括叶节点,每一个叶节点与至少一个音位字符串相关联;以及
处理设备(2),其被耦接到所述存储设备(3),所述处理设备(2)被配置成执行以下步骤,以执行对查询对象(51)的相似性搜索,
在所述导航设备的车辆接口和输入接口之一处接收查询对象;
访问与所述多个对象中的至少一个对象(52,55,59,60)相关联的所述索引结构(10;70)的第一节点(11-13;71-73);
根据距离度量,确定所述查询对象(51)和所述至少一个对象(52,55,59,60)之间的距离(65,66);
确定所述距离是否小于固定的预定搜索半径和存储在所述索引结构中的所述对象的覆盖半径的求和值,存储在所述索引结构中的所述覆盖半径代表所述对象和与所述对象相关联的所述索引结构的子树中包括的任意对象之间的距离的上界;
搜索与所述对象相关联的子树;以及
基于所确定的距离(65;66),选择性地访问所述索引结构(10;70)的第二节点(12-17;72-75)。
11.如权利要求10所述的导航设备,
其中,所述处理设备(2)被配置成执行权利要求1至4中的任一项所述的方法。
12.一种生成用于导航设备数据库的度量索引结构(10;70;110)的方法,所述导航设备数据库包括多个对象,所述方法包括:
通过处理设备生成所述索引结构的目录节点(11-13;71-73;111,114)和生成所述索引结构的叶节点(14-17;74,75;113,115,116),所述目录节点包括指向所述索引结构(10;70;110)的其它节点的指针,其中,存储在所述数据库中的所述多个对象包括多个音位字符串,并且至少一部分目录节点与音位字符串相关联,
其中,所述生成目录节点(11-13;71-73;111,114)和叶节点(14-17;74,75;113,115,116)包括:
对于两对或多对所述对象,分别确定每一个对象对的对象之间的距离,从而确定多个距离,所述距离是根据距离度量分别确定的;
基于所述多个距离,识别出将被包括在目录节点(11-13;71-73;111,114)中的对象,和将被包括在叶节点(14-17;74;75;113,115,116)中的对象;
将从所确定的距离中得出的距离信息存储在所述目录节点和所述叶节点中的至少一个中,其中,为至少一个目录节点存储的所述距离信息包括覆盖半径,该覆盖半径代表所述目录节点中包括的对象和与所述对象相关联的所述索引结构的子树中包括的任意对象之间的距离的上界;以及
将所述索引结构存储在所述导航设备的存储设备中,其中所述导航设备进一步配置成,响应于在所述导航设备的车辆接口和输入接口之一处接收到查询对象,使用所存储的索引结构执行相似性搜索。
13.如权利要求12所述的方法,
其中,所述对象为音位字符串或文本字符串。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11155710.4 | 2011-02-23 | ||
EP11155710.4A EP2492824B1 (en) | 2011-02-23 | 2011-02-23 | Method of searching a data base, navigation device and method of generating an index structure |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102693266A CN102693266A (zh) | 2012-09-26 |
CN102693266B true CN102693266B (zh) | 2017-06-30 |
Family
ID=44851717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210043143.1A Active CN102693266B (zh) | 2011-02-23 | 2012-02-23 | 搜索数据库的方法、生成索引结构的导航设备和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9436702B2 (zh) |
EP (1) | EP2492824B1 (zh) |
JP (1) | JP2012174272A (zh) |
KR (1) | KR101945749B1 (zh) |
CN (1) | CN102693266B (zh) |
CA (1) | CA2767277C (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6183376B2 (ja) * | 2013-01-11 | 2017-08-23 | 日本電気株式会社 | インデックス生成装置及び方法並びに検索装置及び検索方法 |
US9442929B2 (en) | 2013-02-12 | 2016-09-13 | Microsoft Technology Licensing, Llc | Determining documents that match a query |
CN103744886B (zh) * | 2013-12-23 | 2015-03-18 | 西南科技大学 | 一种直接提取的k个最近邻点搜索方法 |
US10915543B2 (en) | 2014-11-03 | 2021-02-09 | SavantX, Inc. | Systems and methods for enterprise data search and analysis |
US9953065B2 (en) | 2015-02-13 | 2018-04-24 | International Business Machines Corporation | Method for processing a database query |
KR101712847B1 (ko) * | 2015-11-20 | 2017-03-07 | 경북대학교 산학협력단 | 방향성을 가지는 도로 네트워크에서 움직이는 k최근접 질의의 안전출구 위치를 계산하는 방법 |
EP3311554B1 (en) * | 2016-03-16 | 2022-03-09 | Beijing Didi Infinity Technology and Development Co., Ltd. | System and method for determining location |
US10650621B1 (en) | 2016-09-13 | 2020-05-12 | Iocurrents, Inc. | Interfacing with a vehicular controller area network |
WO2018160605A1 (en) * | 2017-02-28 | 2018-09-07 | SavantX, Inc. | System and method for analysis and navigation of data |
US11328128B2 (en) * | 2017-02-28 | 2022-05-10 | SavantX, Inc. | System and method for analysis and navigation of data |
US10916014B2 (en) | 2018-06-01 | 2021-02-09 | Ford Global Technologies, Llc | Distinguishing virtual objects from one another |
CN109389119B (zh) * | 2018-10-23 | 2021-10-26 | 百度在线网络技术(北京)有限公司 | 兴趣点区域确定方法、装置、设备和介质 |
KR102006283B1 (ko) | 2019-02-26 | 2019-10-01 | 가천대학교 산학협력단 | 패스트맵을 이용한 데이터셋의 m-트리 적재방법 |
GB201902772D0 (en) | 2019-03-01 | 2019-04-17 | Palantir Technologies Inc | Fuzzy searching 7 applications thereof |
US11710480B2 (en) * | 2019-08-07 | 2023-07-25 | International Business Machines Corporation | Phonetic comparison for virtual assistants |
EP3779733A1 (en) * | 2019-08-12 | 2021-02-17 | Universität Bern | Information retrieval method |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3152871B2 (ja) * | 1995-11-10 | 2001-04-03 | 富士通株式会社 | ラティスをキーとした検索を行う辞書検索装置および方法 |
US20020002550A1 (en) * | 2000-02-10 | 2002-01-03 | Berman Andrew P. | Process for enabling flexible and fast content-based retrieval |
DE10105897A1 (de) * | 2001-02-09 | 2002-08-14 | Bosch Gmbh Robert | Verfahren zum Austauschen von Navigationsinformationen |
CN100410933C (zh) * | 2004-12-29 | 2008-08-13 | 复旦大学 | 一种基于xml数据的高效路径索引方法 |
US8244689B2 (en) * | 2006-02-17 | 2012-08-14 | Google Inc. | Attribute entropy as a signal in object normalization |
JP4135110B2 (ja) | 2005-03-15 | 2008-08-20 | ソニー株式会社 | 地点検索装置、検索方法 |
EP1994478A2 (en) * | 2006-02-10 | 2008-11-26 | Metacarta, Inc. | Systems and methods for spatial thumbnails and companion maps for media objects |
US20080270142A1 (en) * | 2007-04-25 | 2008-10-30 | Find 1-4-U Inc. | Remote Interactive Information Delivery System |
US20090037399A1 (en) * | 2007-07-31 | 2009-02-05 | Yahoo! Inc. | System and Method for Determining Semantically Related Terms |
CN101241511A (zh) * | 2008-03-05 | 2008-08-13 | 北京邮电大学 | 一种基于时空数据的快速索引方法 |
US8326826B1 (en) * | 2009-01-12 | 2012-12-04 | Google Inc. | Navigational resources for queries |
US20120059786A1 (en) * | 2010-09-02 | 2012-03-08 | Walter Christian Kammergruber | Method and an apparatus for matching data network resources |
-
2011
- 2011-02-23 EP EP11155710.4A patent/EP2492824B1/en active Active
-
2012
- 2012-02-03 CA CA2767277A patent/CA2767277C/en not_active Expired - Fee Related
- 2012-02-17 JP JP2012032698A patent/JP2012174272A/ja active Pending
- 2012-02-21 KR KR1020120017458A patent/KR101945749B1/ko active IP Right Grant
- 2012-02-22 US US13/402,539 patent/US9436702B2/en active Active
- 2012-02-23 CN CN201210043143.1A patent/CN102693266B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20120215806A1 (en) | 2012-08-23 |
KR20120096894A (ko) | 2012-08-31 |
EP2492824B1 (en) | 2020-04-01 |
CA2767277C (en) | 2014-11-18 |
JP2012174272A (ja) | 2012-09-10 |
KR101945749B1 (ko) | 2019-06-11 |
EP2492824A1 (en) | 2012-08-29 |
CN102693266A (zh) | 2012-09-26 |
US9436702B2 (en) | 2016-09-06 |
CA2767277A1 (en) | 2012-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102693266B (zh) | 搜索数据库的方法、生成索引结构的导航设备和方法 | |
KR102178295B1 (ko) | 결정 모델 구성 방법 및 장치, 컴퓨터 장치 및 저장 매체 | |
JP4878178B2 (ja) | データ処理方法および装置並びにその処理プログラム | |
CN106407311B (zh) | 获取搜索结果的方法和装置 | |
CN108154198B (zh) | 知识库实体归一方法、系统、终端和计算机可读存储介质 | |
KR100903961B1 (ko) | 시그니처 파일을 이용한 고차원 데이터 색인 및 검색방법과 그 시스템 | |
CN109661659B (zh) | 视觉定位地图存储及加载方法、装置、系统及存储介质 | |
CN106897374B (zh) | 一种基于轨迹大数据最近邻查询的个性化推荐方法 | |
JP2004518226A (ja) | データベースシステムおよびクエリオプティマイザ | |
CN105787126B (zh) | k-d树生成方法和k-d树生成装置 | |
KR20090048624A (ko) | 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체 | |
CN109815232B (zh) | 一种利用二叉查找树的数据排名的检索、数据处理的方法和系统 | |
CN111522892B (zh) | 地理要素的检索方法及装置 | |
CN114491172B (zh) | 树形结构节点的快速检索方法、装置、设备及存储介质 | |
CN109992590A (zh) | 交通网络中带数字属性的近似空间关键字查询方法及系统 | |
CN106777130A (zh) | 一种索引生成方法、数据检索方法和装置 | |
CN115375869A (zh) | 一种机器人重定位方法、机器人和计算机可读存储介质 | |
CN113139032A (zh) | 地理位置的搜索方法、装置、电子设备及存储介质 | |
CN114880393A (zh) | 基于多维索引的海量时空数据可视化性能优化方法及系统 | |
KR20220099745A (ko) | 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치 | |
CN111460325B (zh) | Poi搜索方法、装置与设备 | |
CN115129915A (zh) | 重复图像检索方法、装置、设备及存储介质 | |
CN110069592A (zh) | 应用于电子地图的空间关键字查询的搜索方法 | |
KR101499842B1 (ko) | 데이터 객체 검색 방법 및 그 장치 | |
CN111625530A (zh) | 一种大规模矢量检索方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |