专利名称:在终端上更新索引并基于其对搜索结果排序的方法及装置的制作方法
技术领域:
本发明涉及基于移动终端的信息检索领域,特别是涉及一种移动终端的本地搜 索方法及装置。
背景技术:
随着通讯产业的不断发展,各种移动终端的使用频度以及广度都有较大的提 升。并且伴随硬件设备价格的下降,各种功能强大的移动终端逐步进入百姓家庭,不仅 成为人们日常交流的主要工具之一,而且还是娱乐休闲、或者办公的必备物品。
移动终端的处理能力以及容量都在与日俱增,同时还支持更大容量的存储卡等 外设。用户越来越倾向于将各种文本文件、多媒体数据存放在移动终端中;此外,现代 的移动终端大部分都支持用户将短信、彩信、联系人、邮件等内容存储在除SIM空间以 外的存储空间中,这样用户可以将海量的信息存放在移动终端上而不需要进行删除,达 到永久可用的目的。
正是由于移动终端数据存储容量的提升,即给用户带来了更为贴身的用户体 验,但同时也使得用户查找相关的信息变得相对复杂和困难。因此,在移动终端上进行 桌面搜索将极大地提高用户查找本地信息的速度。
智能移动终端的处理能力虽然不断提升,但其固有特点使得现有的网络搜索引 擎技术、以及个人电脑所采用的桌面搜索技术很难直接应用到嵌入式的移动终端中。由 于移动终端的电池容量有限,不能长时间的运行某个特别耗能的后台程序,每次进行本 地检索都完成一次新的全文索引需要耗费较大的能源和系统资源。
通常,相关性是搜索引擎进行排序的一个重要依据。一般搜索得到结果,都是 按照相关性进行降序排列。这种方式在Web网上非常常见。但在嵌入式系统中,由于 用户使用的资源本身有限,需要查询的信息也绝大部分是用户会反复使用到的资源,比 如某条短信的发件人信息,某个邮件的内容,某一首经常播放的歌曲等等。
因此,一种简化本地搜索过程的本地索引建立及维护方法就是亟待解决的问 题。此外,在结合传统的按照相关度对搜索结果进行排序的基础上,进一步按照移动终 端用户经常访问的频率来对搜索结果排序进行改进,改善检索效果,使搜索过程更贴近 用户使用习惯,增强用户使用体验。发明内容
针对目前等问题而提出本发明,为此,本发明的主要目的在于提供一种的方 法,以解决上述问题。
本发明提出了一种在终端上更新索引并基于其对搜索结果排序的方法,包括以 下步骤检索文件是否有修改;当文件存在修改时,对改变的文件进行增量索引,生成 新的索引文件,其中增量索引中包含对所述文件的历史选中次数;将生成的新的索引文 件合并到原有的索引文件中;获取用户输入的关键字;查询与关键字有关的搜索结果,根据搜索结果与关键字之间的相关度以及所述文件的历史选中次数来对搜索结果进行排 序并显示给用户。
其中,在根据搜索结果与关键字之间的相关度以及所述文件的历史选中次数来 对搜索结果进行排序并显示给用户的步骤之后,还包括以下步骤记录用户选中所述文 件的次数,并更新所述文件的历史选中次数。
其中,在检索文件是否有修改的步骤中,具体包括以下步骤将现有文件的时 间戳和前一次建立索引时所保留的文件的时间戳进行比较,如果现有文件的时间戳与前 一次建立索引时所保留的文件的时间戳一样,则判断文件没有被修改,如果现有文件的 时间戳与前一次建立索引时所保留的文件的时间戳不一样,则判断文件有修改。
其中,在检索文件是否有修改的步骤中,以预定的检索周期检索文件是否有修 改。
其中,定期地或者在检测到手机空闲时或者在新的索引文件达到预定数量时将 新的索引文件合并到原有的索引文件中。
其中,在定期地将新的索引文件合并到原有的索引文件中的过程中,合并周期 与用户设定的检索周期相同。
其中,在生成新的索引文件之后,将所生成的新的索引文件暂存在终端内存 中,并在将所生成的新的索引文件合并到原有的索引文件中之后,释放存储新的索引文 件的终端内存。
本发明还提出了一种在终端上更新索引并基于其对搜索结果排序的装置,包 括检索单元,检索文件是否有修改;生成单元,当所述文件存在修改时,对改变的文 件进行增量索引,生成新的索引文件,其中所述增量索引中包含对所述文件的历史选中 次数;合并单元,将生成的新的索引文件合并到原有的索引文件中;获取单元,获取用 户输入的查询关键字;查询单元,查询与关键字有关的搜索结果,根据搜索结果与关键 字之间的相关度以及所述文件的历史选中次数来对所述搜索结果进行排序;显示单元, 将排序的所述搜索结果显示给用户。
其中,装置还包括记录单元,记录用户选中所述文件的次数;更新单元,更 新所述文件的所述历史选中次数。
其中,装置还包括比较单元,将现有文件的时间戳和前一次建立索引时所保 留的文件的时间戳进行比较,如果现有文件的时间戳与前一次建立索引时所保留的文件 的时间戳一样,则判断所述文件没有被修改,如果现有文件的时间戳与前一次建立索引 时所保留的文件的时间戳不一样,则判断文件有修改。
通过本发明,可以时时地自动更新手机本地索引表,以便满足不时的本地搜索 需求,并且占用较少手机资源和能源。并且搜索结果更加人性化。提高了移动终端用户 的使用体验。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本 发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图 中
图1是本发明优选实施例的建立本地全文索引的流程示意图。
图2是本发明优选实施例的索引文件目录结构。
图3是本发明优选实施例的增量索引示意图。
图4是本发明优选实施例的索引文件结构。
图5是本发明优选实施例的搜索结果排序的流程示意图。
图6是根据本发明的装置。
具体实施方式
本发明的主要目的在于提供一种移动终端的本地搜索的方法。包括索引更新方 法和搜索结果的排序方法。
本发明解决其技术问题采用的技术方案如下
一种移动终端的索引更新方法,主要包括以下步骤
步骤1,定时进行检索,查看文件是否有修改,通过对比现有文件的时间戳和第 一次建立索引时所保留的文件元信息中的时间戳进行对比,如果现有文件的时间戳比第 一次建立索引时所保留的文件元信息中的时间戳更新,那么执行步骤2,否则结束。
步骤2,对新文件进行增量索引,生成新的索引文件。
步骤3,将该含有增量信息的索引文件合并到原先的大索引文件中。
一种移动终端的搜索结果排序方法,主要包括以下步骤
(1)移动终端上的搜索引擎对移动终端存储介质上的文本、短信、联系人、邮 件、图片、视频、音频等其它各种包含文本信息的文件进行分析,并对其建立全文索 引。
( 移动终端的本地搜索搜索引擎的用户界面接受用户的查询请求,读取查 询请求所对应的全文索引,将最贴近用户搜索要求的查询结果反馈给用户。并同时在索 引表中记录用户选中某条搜索结果的次数。
C3)移动终端的多次搜索搜索引擎的用户界面接受用户的查询请求,读取查 询请求所对应的全文索引。将搜索结果与搜索内容的相关度,并对搜索结果的历史选中 次数进行排序。将搜索结果的相关度为第一优先级,历史选中次数为第二优先级,对结 果进行降序排列,并反馈给用户。即,当搜索到具有相关性的文件时,才对具有相关性 的文件将搜索结果和历史选中次数进行权重计算,并根据结果进行排序。
通过本发明,可以时时地自动更新手机本地索引表,以便满足不时的本地搜索 需求,并且占用较少手机资源和能源。并且搜索结果更加人性化。提高了移动终端用户 的使用体验。
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选 实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是根据本发明的建立本地全文索引的流程示意图。具体包括以下步骤
步骤S101,根据用户输入,确认需要索引的信息范围。这样可以减少不必要的 索引时间,增加有效搜索次数,并在某些情况下保护用户在移动终端上的私密信息不被 搜索。
步骤S102,根据步骤SlOl所确定的信息范围,建立文件元信息。包括文件建立或修改的时间戳、以及文件类型等。
步骤S103,根据步骤SlOl所确定的信息范围,对文件的文本信息进行分析,包 括文件名、文件中的文本信息,以及多媒体文件的文本注释等信息。并将这些信息和数 据存储在一个纯文本或XML文档结构中,可以很灵活的嵌入到移动设备的程序中。
步骤S104,建立全文索引,索引过程为读取文件名,将文件分路径和内容2个 字段进行存储,并对内容进行全文索引。内容包括多个字段,并针对不同字段属性和数 据输出的续签,对字段选择不同的索引规则和存储规则,比如对标题需要进行切分词的 操作,而对日期只存储而不进行切分词操作。
本发明中,所更新的不是整个索引文件,而是在需要增加索引中的信息时,不 断创建新的索引文件,然后在手机空闲时,定期地将这些新的小索引文件合并到原先的 大索引文件中,即增量索引,这样在不影响搜索查询效率的前提下,提高了索引的效 率。创建新的索引文件的优势之一是如果原先的索引文件在意外损坏的情况下,用户还 可以通过查询新创建的索引文件得到近期的搜索结果。另外重新从原始数据进行索引只 需要索引最近一次创建新索引文件之前的原始数据即可,节省了索引时间。另外,将小 索引文件合并到原先大索引文件的合并周期与用户设定的索引周期相同,因为只有在索 引文件有变化的情况下,才有必要将新增的索引文件合并到原先的大索引文件中。并且 保证合并过程不在索引过程中进行,因为这样会消耗大量的CPU时间,使得索引效率低 下,并影响用户的手机操作体验。因此需要在索引过程结束后,并且用户在较长一段时 间内没有操作手机的情况下,进行合并操作,这里设定的合并时间点为用户停止操作手 机后的半个小时。在这里,利用了 Lucene自带的增量索引机制,通过段的使用,在内存 中快速将新的索引信息合并到原先的大索引文件中,然后再将更新后的大索引文件写入 磁盘,接着删除不需要的小索引文件。
具体而言,本发明的更新维护方法包括
步骤S105,定时进行检索,查看文件是否有修改,通过对比现有文件的时间戳 和第一次建立索引时所保留的文件元信息中的时间戳进行对比,如果现有文件的时间戳 比第一次建立索引时所保留的文件元信息中的时间戳更新,那么执行步骤S106,否则根 据检索周期继续执行S105步骤。
步骤S106,对新文件进行增量索引,生成新的索引文件。
步骤S107,将该含有增量信息的索引文件合并到原先的大索引文件中。
进一步地,步骤S105中的检索周期可以由用户设定,也可以是每小时,每日,每周,每月。
进一步地,步骤S106中所述增量索引形成的索引文件可以暂存在内存中,以减 少CPU读取和处理的工作量与时间。
进一步地,步骤S107中所述的合并工作,在手机空闲时进行。
进一步地,索引文件合并完之后释放原本占用的内存空间。
图2是本发明优选实施例的索引文件目录结构
201索引文件的读写权限。
202索引文件的创建者。
203索引文件的最后修改者。
204索引文件大小,单位是字节。
205索引文件最后的修改日期。
206索引文件最后的修改时间。
207索引文件的名称。
索引由一个或多个段组成。而每个段又由多个索引文件组成。属于同一个段的 索引文件具有相同的前缀名以及不同的后缀名。在图3中索引文件目录由2个段组成, 分另1J 为 _movie 禾口 _email。
图3是本发明优选实施例的增量索引示意图
301是索引目录中含有2个段的示意图,分别为_m0Vie*_m0Vie2。在索引合 并周期到来时,可以对相同类别的段进行合并,减少索引文件,以此减少IO次数,提高 搜索性能。
302是合并_movie和_movie2以后的索引目录结构。可以看到主要的索引文件类型保持不变。但每个文件的大小已经增大,并且在索引文件完全合并后,原先的小索 引文件将被删除。
图4是根据本发明的索引文件结构示意图。在本实施例中专门针对嵌入式设备 的本地搜索特性和特定的搜索结果,对4个索引文件中的内容进行了一定的定制。
在本实施例中,采用了 4个子索引文件来存储索引信息,这样的粒度划分有利 于性能的最大化和资源利用的最小化。例如,如果某个域没有被索引,通过操作可以很 快地基于.fom文件中的索引标记从查询中完全去除整个域。而如果项本身不出现,则不 需要查找位置信息。
其中.fom文件存储了段中相关的文档包含的所有的域名。其中每个域都被标记 过,以此来反映它是否被索引过。本实施例中所采用的域包括修改时间,是否被修改 过,文件标题,文件路径,文件所属类别,文件内容等信息。
.tis文件保存了段中的所有项(由域名和值构成的元组),即分词后的词条。每 个项条目包含了它的文档频率,即Value所对应的条目在多少个文档中出现过。这里以 Value为“中兴”为例,表示“中兴”在5篇文档中出现过。
.frq文件保存了每个项在文档中的出现频率。这里以.tis文件中的“中兴”为 例,结合.frq文件,表示“中兴”分别出现在“3G在中国.txt”、"Sina.html"、“中 兴宣传信息”、“来自小新.txt”,“XX的歌词.txt”这5个文件中;而在“3G在中 国.txt”中出现了 12次“中兴”,在“Stea.html”中出现了 15次“中兴”,依次类推。 对应“3G在中国.txt”文件,被用户历史选中的次数为5次,而在“S:ina.htmr’中,被 用户历史选中的次数100。
.prx文件列出了文档中每个项的位置,以及显示在搜索结果列表中被用户选中后 的次数。这里以“中兴”为例,表示“中兴”在“来自小新.txt”中,以二元分词划 分后的分词列表中,排在第3位和第8位。
图5是根据本发明的搜索结果排序的流程示意图。具体包括以下步骤
步骤阳01,根据用户输入的信息,在全文索引中进行检索,并得到检索结果集。
步骤阳02,根据文件中出现搜索项的频率来对检索结果进行权重计算。设搜索8项在文件η中出现的次数为Wn,总次数为WF。本发明以搜索项“中兴”为例。文件 1为“3G在中国.txt”,文件2为“S:ina.htmr’,文件3为“中兴宣传信息.wmv”,文 件4为“来自小新.txt”,文件5为“XX的歌词.txt”,对应的Wn分别为W1 = 12,W2=15,W3 = 36,W4 = 2,W5 = 3。\¥产|> =\¥+\¥2+\¥3+\¥4+\¥5=68。那么ι每个文件对应的权重Wnf = Wn/WF。在本发明实施例中,Wlf= 12/68,W2f= 15/68, W3f = 36/68,依此类推。初步得到的排序为W3f > W2f > Wlf > W5f > W4fo
步骤阳03,根据用户历史选中文件的次数进行权重计算。设用户历史选中某个 文件η的次数为Hn,历史选中搜索项的总次数为Hf。在本发明实施例中,以搜索项“中 兴”为例。文件所对应的Hn分别为H1 = 5,H2 = 100,H3 = 6,H4 = 7,H5 = 4。11产|;// =氏+场+113+^^1^=122。那么每个文件被历史选中的权重为 =Hn/ιHf。在本发明实施例中,Hnl = 5/122,Hn2 = 100/122, Hn3 = 6/122,依此类推。以此得到的排序为H2f > H4f > H3f > Hlf > H5fo
步骤S504,根据搜索项在文件中出现频率得到的权重Wdn文件被用户历史选中 次数的权重Hn,计算该文件的总权重Sn。计算公式为Sn = Wnf+Hnf。根据此公式得到的 Sn 分别为 S1 = 0.217,S2 =1.041,S3 = 0.578,S4 = 0.086,S5 = 0.077,其降序排序为 S2 > S3 > Sl > S4 > S5。
S505,根据Sn的降序顺序,将搜索结果以列表方式反馈给用户。在本发明实施 例中,其顺序依次为“S:ina.htmr’, “中兴宣传信息.wmv”, “3G在中国.txt”, “来 自小新.txt”, “XX的歌词.txt”。
S506,根据用户选择,将其选中的文件在.frq表格中的SelectFrequency这个字段数值增加1。
从以上分析可以看到,最终的排序结果,与单独按照搜索项在文件中出现的频 率进行排序,或者以用户历史选中文件的次数进行排序,都不一样。从排序结果可以看 到,虽然文件“中兴宣传信息.wmv”包含搜索项的频率很高,但是由于用户平时查看文 件“S:ina.htmr’的次数更多,可以推测用户是想通过搜索“中兴”来查找自己以往最感 兴趣、最喜欢浏览的文件和内容是“Simditml”,而不是“中兴宣传信息.wmv”。
通过本发明,可以时时地自动更新手机本地索引表,以便满足不时的本地搜索 需求,并且占用较少手机资源和能源。提高了移动终端用户的使用体验。
此外,对于搜索结果的处理方式,除了考虑了一般情况下的相关度算法,即搜 索项在文件中出现频率这个因素;此外还考虑到了移动终端用户的使用习惯,考虑其历 史选中某个文件的次数,并作为相关度需要考察的因素之一。使得搜索结果更贴近用户 所需。
另外,本发明还提出了一种在终端上更新索引并基于其对搜索结果排序的装 置。图6示出了根据本发明的装置。如图6所示,该装置包括检索单元,检索文件 是否有修改;生成单元,当文件存在修改时,对改变的文件进行增量索引,生成新的索 引文件,其中所述增量索引中包含对文件的历史选中次数;合并单元,将生成的新的索 引文件合并到原有的索引文件中;获取单元,获取用户输入的查询关键字;查询单元,查询与关键字有关的搜索结果,根据搜索结果与关键字之间的相关度以及文件的历史选 中次数来对所述搜索结果进行排序;显示单元,将排序的搜索结果显示给用户;记录单 元,记录用户选中文件的次数;更新单元,更新文件的所述历史选中次数。
该装置还包括比较单元,将现有文件的时间戳和前一次建立索引时所保留的 文件的时间戳进行比较,如果现有文件的时间戳与前一次建立索引时所保留的文件的时 间戳一样,则判断所述文件没有被修改,如果现有文件的时间戳与前一次建立索引时所 保留的文件的时间戳不一样,则判断所述文件有修改。
检索单元以预定的检索周期检索文件是否有修改。
合并单元定期地或者在检测到手机空闲时或者在新的索引文件达到预定数量时 将所述新的索引文件合并到原有的索引文件中。
领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算 装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网 络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它 们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特 定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的 技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的 任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种在终端上更新索引并基于其对搜索结果排序的方法,其特征在于,所述方法 包括以下步骤检索文件是否有修改;当所述文件存在修改时,对改变的文件进行增量索引,生成新的索引文件,其中所 述增量索引中包含对所述文件的历史选中次数;将生成的新的索引文件合并到原有的索引文件中; 获取用户输入的关键字;查询与关键字有关的搜索结果,根据搜索结果与关键字之间的相关度以及所述文件 的历史选中次数来对所述搜索结果进行排序并显示给用户。
2.根据权利要求1所述的方法,其特征在于,在根据搜索结果与关键字之间的相关度 以及所述文件的历史选中次数来对所述搜索结果进行排序并显示给用户的步骤之后,还 包括以下步骤记录用户选中所述文件的次数,并更新所述文件的所述历史选中次数。
3.根据权利要求1所述的方法,其特征在于,在检索文件是否有修改的步骤中,具体 包括以下步骤将现有文件的时间戳和前一次建立索引时所保留的文件的时间戳进行比较, 如果现有文件的时间戳与前一次建立索引时所保留的文件的时间戳一样,则判断所 述文件没有被修改,如果现有文件的时间戳与前一次建立索引时所保留的文件的时间戳不一样,则判断 所述文件有修改。
4.根据权利要求1所述的方法,其特征在于,在检索文件是否有修改的步骤中,以预 定的检索周期检索文件是否有修改。
5.根据权利要求1所述的方法,其特征在于,定期地或者在检测到手机空闲时或者在 新的索引文件达到预定数量时将所述新的索引文件合并到原有的索引文件中。
6.根据权利要求5所述的方法,其特征在于,在定期地将所述新的索引文件合并到原 有的索引文件中的过程中,合并周期与用户设定的检索周期相同。
7.根据权利要求1所述的方法,其特征在于,在生成新的索引文件之后,将所生成的 新的索引文件暂存在终端内存中,并在将所生成的新的索引文件合并到原有的索引文件 中之后,释放存储新的索引文件的终端内存。
8.—种在终端上更新索引并基于其对搜索结果排序的装置,其特征在于,包括 检索单元,检索文件是否有修改;生成单元,当所述文件存在修改时,对改变的文件进行增量索引,生成新的索引文 件,其中所述增量索引中包含对所述文件的历史选中次数;合并单元,将生成的新的索引文件合并到原有的索引文件中; 获取单元,获取用户输入的查询关键字;查询单元,查询与关键字有关的搜索结果,根据搜索结果与关键字之间的相关度以 及所述文件的历史选中次数来对所述搜索结果进行排序; 显示单元,将排序的所述搜索结果显示给用户。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括记录单元,记录用户选中所述文件的次数;更新单元,更新所述文件的所述历史选中次数。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括比较单元,将现有文件的时间戳和前一次建立索引时所保留的文件的时间戳进行比较,如果现有文件的时间戳与前一次建立索引时所保留的文件的时间戳一样,则判断所 述文件没有被修改,如果现有文件的时间戳与前一次建立索引时所保留的文件的时间戳不一样,则判断 所述文件有修改。
全文摘要
本发明提供了一种在终端上更新索引并基于其对搜索结果排序的方法,包括以下步骤检索文件是否有修改;当文件存在修改时,对新文件进行增量索引,生成新的索引文件,其中增量索引中包含对所述文件的历史选中次数;将生成的新的索引文件合并到原有的索引文件中;获取用户输入的关键字;查询与关键字有关的搜索结果,根据搜索结果与关键字之间的相关度以及所述文件的历史选中次数来对所述搜索结果进行排序并显示给用户,通过本发明,可以时时地自动更新手机本地索引表,占用较少手机资源和能源,搜索结果更加人性化,提高了移动终端用户的使用体验。
文档编号G06F17/30GK102023991SQ20091017567
公开日2011年4月20日 申请日期2009年9月21日 优先权日2009年9月21日
发明者李斌, 白洛, 纪中伟, 翁儒复 申请人:中兴通讯股份有限公司