无城市搜索方法及移动终端的制作方法

文档序号:6332385阅读:150来源:国知局
专利名称:无城市搜索方法及移动终端的制作方法
技术领域
本发明涉及一种无城市搜索方法及移动终端,属于移动搜索技术领域。
背景技术
无城市搜索是指无需区分城市而在全国范围内搜索兴趣点(Point of Interest, 简称P0I)的技术。该技术在进行索引之前预先建议索引文件,其中包括多条记录 (document),每一条记录中存储有一个POI的字段信息,如表1所示,包括中文名称、拼音、 地址及电话等信息。表1记录举例
字段名称类型是否为 空注释索引(Index)"ID"8位整数否主键未分析"Name"字符变量否中文名称已分析CL · * pinyin字符变量是拼音已分析"Englishname"字符变量是英文名已分析"zipcode"4位整数否邮编无"address"字符变量是地址已分析"Tel"字符变量是电话未分析"Kind"字符变量否种类代码未分析"adminname"字符变量是行政区划名 称已分析"areacode"4位整数是行政区划代 码未分析"Fax"字符变量是传真号码未分析"email"字符变量是Emial地址未分析"url"字符变量是URL地址未分析"Geom.“类型是几何数据未分析"pathname"字符变量是道路名称已分析"poigid"8位整数否区分高德四 维的序列号未分析"Samepoig id"8位整数是保留未分析"Id2"字符变量否保留无
当用户需要进行无城市搜索时,向移动终端输入检索词,移动终端根据该检索词 在相应搜索服务器中保存的索引文件中查找相匹配的记录,并返回搜索结果。现有技术中至少存在如下问题现有索引文件中,针对一个POI的一条记录的所 有字段信息作为一个文件存储于搜索服务的磁盘中,当移动终端为用户执行检索时,需要 对一条记录中的所有字段信息进行匹配查找;并且,当进行无城市搜索时,又需要对不同城 市的不同记录中的所有字段信息进行匹配查找,因此需要消耗大量的运算资源。而现有移 动终端的处理能力又是非常有限的,因此在进行无城市搜索时处理速度很慢,搜索效率很 低。

发明内容
本发明提供一种无城市搜索方法及移动终端,用以提高搜索速度。本发明一方面提供一种无城市搜索方法,其中包括接收到用户输入的检索词后,根据该检索词在第一数据库中查找与该检索词相匹 配的关键字段;根据查找到的所述关键字段,在第二数据库中查找与该关键字段属于同一条记录 的非关键字段;将查找到的所述关键字段的内容及所述非关键字段的内容合并为搜索结果;将所述搜索结果显示给所述用户。本发明另一方面提供一种移动终端,其中包括第一查找模块,用于当接收到用户输入的检索词后,根据该检索词在第一数据库 中查找与该检索词相匹配的关键字段;第二查找模块,用于根据第一查找模块查找到的所述关键字段,在第二数据库中 查找与该关键字段属于同一条记录的非关键字段;合并模块,用于将第一查找模块查找到的所述关键字段的内容及第二查找模块查 找到的所述非关键字段的内容合并为搜索结果;显示模块,用于将合并模块生成的所述搜索结果显示给所述用户。本发明通过将能够被索引的主键字段与不能被索引的非主键字段分离存储,当执 行无法城市搜索时,先在第一数据库中查找主键字段,再在第二数据库中查找非主键字段, 从而形成搜索结果,因此,大大减少了搜索的处理量,加快了搜索速度,提高了搜索效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。图1为本发明所述无城市搜索方法实施例一的流程图;图2为图1所示方法中提到的词频率的数据结构示意图;图3为本发明所述移动终端实施例的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明所述无城市搜索方法实施例一的流程图,如图所示,该方法包括如 下步骤步骤101,接收到用户输入的检索词后,根据该检索词在第一数据库中查找与该检 索词相匹配的关键字段。其中,关键字段是指在索引文件中能够唯一确定一条记录的字段,如主键字段、 地址字段以及中文名称字段等。用户输入的检索词一旦与索引文件中的某个关键字段中的 内容相匹配时,则可以确定一条相应的记录。在本实施例中,所有的关键字段及其相关内容均保存在第一数据库中。具体地,该 第一数据库例如可以为内存对象缓存数据库(简称memcache),移动终端可以根据所述检 索词在所述memcache中查找与该检索词相匹配的关键字段。其中,memcache是一个高性 能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的哈希(hash)表来 存储数据库检索的结果等。由于其缓存采用分布式结构,因此可以允许不同移动终端同时 访问这个缓存系统,不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的 压力,大大提高了访问获取数据的速度。步骤102,根据查找到的所述关键字段,在第二数据库中查找与该关键字段属于同 一条记录的非关键字段。其中,非关键字段是指在索引文件中不能够唯一确定一条记录的字段,如邮编字 段(zipcode)、行政区划代码字段(areacode)以及道路名称字段(pathname)等。用户输入 的检索词与索引文件中的非关键字段中的内容匹配后,会出现多条记录,而不能确定一条 记录,因此这些字段通过不用于索引,而仅用于为用户提供补充信息。具体地,移动终端可以先读取查找到的所述关键字段所属记录的主键值;然后再 根据所述主键值在所述第二数据库中查找具有相同主键值的非关键字段。其中,所述主键 值是指主键字段的内容。在第一数据库及第二数据库中均存储主键字段,以标识哪些字段 属于同一条记录。在本实施例中,所有的非关键字段及其相关内容均保存在第二数据库中。具体地, 该第二数据库例如可以为伯克力数据库(简称=Berkeley db)。其中,Berkeley DB是一种 高性能的嵌入数据库编程库,它可以保存任意类型的键/值对,而且可以为一个键保存多 个数据,其可以支持数千的并发线程同时操作数据库,因此广泛应用于实时操作系统等多 种系统。步骤103,将查找到的所述关键字段的内容及所述非关键字段的内容合并为搜索结果。其中,当用户输入的检索词与所述关键字段的内容部分匹配时,得到的搜索结果 则有可能为多条记录,例如,当检索词为“国贸”时,搜索结果为“国贸公交车站”、“国贸桥”、 “国贸公寓”等多条记录;当用户输入的检索词与所述关键字段的内容完全匹配时,得到的
5搜索结果则为一条记录,例如,当检索词为“国贸桥”时,搜索结果则为“国贸桥”这一条记录。步骤104,将所述搜索结果显示给所述用户。具体地,当搜索结果为多条记录时,可以根据查找到的所述关键字段的内容的词 频率,从由高到底的顺序对所述搜索结果进行排序;将排序后的所述搜索结果显示给所述 用户。其中,词频率是指词语(Term)在索引文件中出现的次数,其数据结构如图2所示。 例如,“国贸公交车站”的词频率为5次、“国贸桥”的词频率为3次、“国贸公寓”的词频率为 4次,则最终端显示给用户的搜索结果依次为“国贸公交车站”、“国贸公寓”及“国贸桥”。另外,为了保证数据的安全性,所述第一数据库作为第一主要库,还与作为该第一 数据库备份的第一辅助库进行同步更新;所述第二数据库作为第二主要库,还与作为该第 二数据库备份的第二辅助库进行同步更新。具体地,当进行同步更新时,可以采用通过同步 软件(rsync)在需要同步的时候进行同步更新,例如当主要库更新了一个索引文件时,辅 助库也要进行相应地更新。本实施例所述方法通过将能够被索引的主键字段与不能被索引的非主键字段分 离存储,当执行无法城市搜索时,先在第一数据库中查找主键字段,再在第二数据库中查找 非主键字段,从而形成搜索结果,因此,大大减少了搜索的处理量,加快了搜索速度,提高了 搜索效率。图3为本发明所述移动终端实施例的结构示意图,如图所示,该移动终端10包括 第一查找模块11、第二查找模块12、合并模块13及显示模块14,其工作原理如下当移动终端10接收到用户输入的检索词后,由第一查找模块11根据该检索词在 第一数据库中查找与该检索词相匹配的关键字段。其中,关键字段是指在索引文件中能够 唯一确定一条记录的字段,用户输入的检索词一旦与索引文件中的某个关键字段中的内 容相匹配时,则可以确定一条相应的记录。在本实施例中,所有的关键字段及其相关内容 均保存在第一数据库中。具体地,该第一数据库例如可以为内存对象缓存数据库(简称 memcache),有关memcache的说明请参见前述方法实施例的相关内容,此处不再赘述。此后,由第二查找模块12根据第一查找模块11查找到的所述关键字段,在第二数 据库中查找与该关键字段属于同一条记录的非关键字段。其中,非关键字段是指在索引文 件中不能够唯一确定一条记录的字段,用户输入的检索词与索引文件中的非关键字段中的 内容匹配后,会出现多条记录,而不能确定一条记录,因此这些字段通过不用于索引,而仅 用于为用户提供补充信息。具体地,移动终端可以先读取查找到的所述关键字段所属记录的主键值;然后再 根据所述主键值在所述第二数据库中查找具有相同主键值的非关键字段。其中,所述主键 值是指主键字段的内容。在第一数据库及第二数据库中均存储主键字段,以标识哪些字段 属于同一条记录。在本实施例中,所有的非关键字段及其相关内容均保存在第二数据库中。 具体地,该第二数据库例如可以为伯克力数据库(简称=Berkeley db),有关Berkeley db 的说明请参见前述方法实施例的相关内容,此处不再赘述。接下来,由合并模块13将第一查找模块11查找到的所述关键字段的内容及第二 查找模块12查找到的所述非关键字段的内容合并为搜索结果。具体地,当用户输入的检索
6词与所述关键字段的内容部分匹配时,得到的搜索结果则有可能为多条记录;当用户输入 的检索词与所述关键字段的内容完全匹配时,得到的搜索结果则为一条记录。具体的举例 请参见前述方法实施例的相关内容,此处不再赘述。最后,由显示模块14将合并模块13生成的所述搜索结果显示给所述用户。具体 地,当搜索结果为多条记录时,还可以通过另设排序模块15先根根据第一查找模块11查找 到的所述关键字段的内容的词频率,从由高到底的顺序对合并模块生成的所述搜索结果进 行排序,然后再由所述显示模块14将排序模块15排序后的所述搜索结果显示给所述用户。本实施例所述移动终端通过将能够被索引的主键字段与不能被索引的非主键字 段分离存储,当执行无法城市搜索时,先在第一数据库中查找主键字段,再在第二数据库中 查找非主键字段,从而形成搜索结果,因此,大大减少了搜索的处理量,加快了搜索速度,提 高了搜索效率。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
一种无城市搜索方法,其特征在于包括接收到用户输入的检索词后,根据该检索词在第一数据库中查找与该检索词相匹配的关键字段;根据查找到的所述关键字段,在第二数据库中查找与该关键字段属于同一条记录的非关键字段;将查找到的所述关键字段的内容及所述非关键字段的内容合并为搜索结果;将所述搜索结果显示给所述用户。
2.根据权利要求1所述的方法,其特征在于所述根据查找到的所述关键字段,在第二 数据库中查找与该关键字段属于同一条记录的非关键字段包括读取查找到的所述关键字段所属记录的主键值;根据所述主键值,在所述第二数据库中查找具有相同主键值的非关键字段。
3.根据权利要求1所述的方法,其特征在于所述根据该检索词在第一数据库中查找与 该检索词相匹配的关键字段包括根据该检索词在内存对象缓存数据库中查找与该检索词 相匹配的关键字段。
4.根据权利要求1所述的方法,其特征在于所述在第二数据库中查找与该关键字段属 于同一条记录的非关键字段包括在伯克力数据库中查找与该关键字段属于同一条记录的 非关键字段。
5.根据权利要求1所述的方法,其特征在于将所述搜索结果显示给所述用户包括根据查找到的所述关键字段的内容的词频率,从由高到底的顺序对所述搜索结果进行 排序;将排序后的所述搜索结果显示给所述用户。
6.根据权利要求1所述的方法,其特征在于所述方法还包括所述第一数据库与作为 该第一数据库备份的第一辅助库进行同步更新。
7.根据权利要求1所述的方法,其特征在于所述方法还包括所述第二数据库与作为 该第二数据库备份的第二辅助库进行同步更新。
8.一种移动终端,其特征在于包括第一查找模块,用于当接收到用户输入的检索词后,根据该检索词在第一数据库中查 找与该检索词相匹配的关键字段;第二查找模块,用于根据第一查找模块查找到的所述关键字段,在第二数据库中查找 与该关键字段属于同一条记录的非关键字段;合并模块,用于将第一查找模块查找到的所述关键字段的内容及第二查找模块查找到 的所述非关键字段的内容合并为搜索结果;显示模块,用于将合并模块生成的所述搜索结果显示给所述用户。
9.根据权利要求8所述的移动终端,其特征在于所述第一数据库为内存对象缓存数据库。
10.根据权利要求8所述的移动终端,其特征在于所述第二数据库为伯克力数据库。
11.根据权利要求8所述的移动终端,其特征在于还包括排序模块,用于根据第一查找模块查找到的所述关键字段的内容的词频率,从由高到 底的顺序对合并模块生成的所述搜索结果进行排序;所述显示模块还用于将排序模块排序后的所述搜索结果显示给所述用户。
全文摘要
本发明提供一种无城市搜索方法及移动终端,其中方法包括接收到用户输入的检索词后,根据该检索词在第一数据库中查找与该检索词相匹配的关键字段;根据查找到的所述关键字段,在第二数据库中查找与该关键字段属于同一条记录的非关键字段;将查找到的所述关键字段的内容及所述非关键字段的内容合并为搜索结果;将所述搜索结果显示给所述用户。本发明通过将能够被索引的主键字段与不能被索引的非主键字段分离存储,当执行无法城市搜索时,先在第一数据库中查找主键字段,再在第二数据库中查找非主键字段,从而形成搜索结果,因此,大大减少了搜索的处理量,加快了搜索速度,提高了搜索效率。
文档编号G06F17/30GK101963977SQ201010287449
公开日2011年2月2日 申请日期2010年9月19日 优先权日2010年9月19日
发明者王山虎, 王郭洋 申请人:北京腾瑞万里科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1