一种全码表多维数组交叉搜索方法及装置与流程

文档序号:11774818阅读:167来源:国知局
一种全码表多维数组交叉搜索方法及装置与流程

本发明涉及计算机软件领域,特别涉及一种全码表多维数组交叉搜索方法及装置。



背景技术:

键盘精灵是指,当按下键盘上任意一个数字、字母或符号的时候,都会弹出“键盘精灵”。可以在这里面输入中英文和数字搜索您想要的东西。可以通过输入代码、名称或名称的汉语拼音首字母来搜索对应的商品(股票、基金、债券、指数等),按enter键进入相关页面。

现有技术中,实现键盘精灵的方法是:cedit和clistbox两个控件的关联,cedit用以接收键盘输入,两者对enter键和上下方向键的响应并显示相关页面,clistbox用以对双击鼠标左键的响应并显示相关页面,以及显示和隐藏这两个控件。

现有技术中的缺陷在于:

1)搜索响应速度较慢,

2)可兼容的可搜索内容有限制,

3)可兼容的搜索代码式有限制。



技术实现要素:

本发明要解决的技术问题是,提供一种搜索范围全、搜索响应速度快、可搜索内容更加全面的全码表多维数组交叉搜索方法。

解决上述技术问题,本发明提供了一种全码表多维数组交叉搜索方法,包括如下步骤:

输入搜索内容,

判断所述搜索内容是否建立过索引,

若没有,则创建搜索内容的新索引,

若有,则使用上述索引进行查找得到搜索结果,

对所述搜索结果进行优选级排序,

输出搜索结果。

上述索引包括包括但不限于:代码索引、名称索引、简拼索引以及全拼索引。

上述优选级排序,一般根据用户的喜好或者使用习惯来调整,比如说,用一个关键字所搜出了很多结果,则可以把股票应用程序的功能和股票指标放在最前面,然后股票应用程序的功能里按照代码排序或是名称排序,指数放第二优先级。若同为指数则按照代码排序或是名称排序,然后把沪深a股放在第三优先级等等。

更进一步,对所有需要搜索的内容建立多重索引,所述多重索引包括:

{代码}、{名词}、{简拼}、{全拼}、{混合}。

更进一步,通过unicode直接转译出对应的编码,其中时间复杂度降为o(1)。

更进一步,搜索内容包括:股票、指数、功能或者指标。

更进一步,所述创建搜索内容的新索引的方法具体包括:

对所述搜索内容中每一个需要生成索引的内容建立:一代码索引、一名称索引以及一名称简拼索引,

对所述搜索内容中的汉字进行统一化编码处理,

生成一汉字简拼首字母表,同时生成一汉字全拼首字母表,

将所述搜索内容中每个需要搜索的汉字转成unicode,对所述汉字简拼首字母表和所述汉字全拼首字母表,使用unicode做下标并生成一map,

根据上述unicode对应的简拼和/或全拼建立新索引,

生成缓存文件并保存至本地。

更进一步,对所述搜索内容中的汉字进行统一化编码处理的方式为:unicode。

更进一步,所述每一个需要生成索引的内容为:代码属性、名称属性以及名称简拼属性。

基于上述,本发明还提供了一种全码表多维数组交叉搜索装置,包括:查询输入单元,搜索单元、索引创建单元以及显示单元,

所述查询输入单元,用以作为搜索内容的输入窗口,

所述索引创建单元,用以判断所述搜索内容是否建立过索引,

所述搜索单元,用以使用上述索引进行查找得到搜索结果,对所述搜索结果进行优选级排序,

所述显示单元,用以输出搜索结果。

更进一步,所述装置被配置为一客户端,所述客户端包括:pc、安卓、iphone、wp、ipad、mac的客户端。

更进一步,所述查询输入单元,还用以接收关键词输入,并对输入所述关键字的每个数字、字母或者汉字,输入到所述搜索单元进行搜索。

本发明的有益效果:

本发明中的一种全码表多维数组交叉搜索方法,由于包括步骤:输入搜索内容,判断所述搜索内容是否建立过索引,若没有,则创建搜索内容的新索引,若有,则使用上述索引进行查找得到搜索结果,对所述搜索结果进行优选级排序,输出搜索结果。全码表的方式能够对所有需要搜索的内容根据其特性建立多重索引把搜索条件放宽,无论用其代码、名词、简拼、全拼甚至混合使用都能支持内容搜索。更进一步,对搜索内容中对难以处理的汉字部分通过unicode的特性,使其无需查找直接转译出对应的编码,时间复杂度降为o(1)。此外,通过模拟测试,本发明能够通过建立索引的方式大幅度的提升了搜索效率,使其耗时在毫秒级。

附图说明

图1是本发明一实施例中的全码表多维数组交叉搜索方法的流程示意图;

图2是本发明一实施例中的创建搜索内容的新索引方法的流程示意图;

图3是本发明一实施例中的搜索流程示意图;

图4是本发明一实施例中的创建索引流程示意图;

图5是本发明另一实施例中的搜索流程流程示意图;

图6是本发明一实施例中的系统结构示意图。

具体实施方式

现在将参考一些示例实施例描述本公开的原理。可以理解,这些实施例仅出于说明并且帮助本领域的技术人员理解和实施例本公开的目的而描述,而非建议对本公开的范围的任何限制。在此描述的本公开的内容可以以下文描述的方式之外的各种方式实施。

如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。

如图1所示是本发明一实施例中的全码表多维数组交叉搜索方法的流程示意图,本实施例中包括如下步骤:

步骤s100输入搜索内容,

步骤s101判断所述搜索内容是否建立过索引,

步骤s102若没有,则创建搜索内容的新索引,

步骤s103若有,则使用上述索引进行查找得到搜索结果,

步骤s104对所述搜索结果进行优选级排序,

步骤s105输出搜索结果。

在所述步骤s100中输入的内容包括但不限于,代码、名称、简拼、全拼的部分或全部。搜索的内容包括但不限于,股票、指数、功能、指标等需要搜索的内容。在所述步骤s101需要判断所述搜索内容是否建立过索引,如果已经建立过索引则进入步骤s103继续处理;如果没有建立过索引则进入步骤s102准备处理。作为本实施例中的优选,对所有需要搜索的内容建立多重索引,所述多重索引包括:{代码}、{名词}、{简拼}、{全拼}、{混合}。即所有需要搜索的内容都需要建立多重维度的索引,即无论用其代码、名词、简拼、全拼甚至混合使用都能支持全码状态的搜索。作为本实施例中的优选,上述搜索内容包括但不限于:股票、指数、功能或者指标。指数是指,股票价格指数,就是用以反映整个股票市场上各种股票市场价格的总体水平及其变动情况的指标。由于股票价格起伏无常,投资者必然面临市场价格风险。一些金融服务机构就利用自己的业务知识和熟悉市场的优势,编制出股票价格指数,公开发布,作为市场价格变动的指标。投资者据此就可以检验自己投资的效果,并用以预测股票市场的动向。同时,新闻界、公司老板等也以此为参考指标,来观察、预测经济发展形势。

作为本实施例中的优选,通过unicode直接转译出对应的编码,其中时间复杂度降为o(1)。时间复杂度具体是指:同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大o符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。

上述全码表多维数组交叉搜索方法的实现原理包括但不限于,基于cedit和/或clistbox插件。cedit用以接收键盘输入,两者对enter键和上下方向键的响应并显示相关页面,clistbox用以对双击鼠标左键的响应并显示相关页面,以及显示和隐藏这两个控件。cedit类提供了windows编辑控件中的功能,编辑控件是一个子窗口矩形,用户可以向其中输入文本。可以通过对话模板或直接从代码中创建一个编辑控件。clistbox插件,首先添加一个对话框,并创建这个对话框的类;在主菜单蓝栏中添加一个菜单“列表框”,并添加这个菜单的单击事件,最后在oninitdialog()中队列表框进行初始化。

请参考图2是本发明一实施例中的创建搜索内容的新索引方法的流程示意图,作为上述方法的优选地,所述创建搜索内容的新索引的方法具体包括:

步骤s200对所述搜索内容中每一个需要生成索引的内容建立:一代码索引、一名称索引以及一名称简拼索引,

步骤s201对所述搜索内容中的汉字进行统一化编码处理,

步骤s202生成一汉字简拼首字母表,同时生成一汉字全拼首字母表,

步骤s203将所述搜索内容中每个需要搜索的汉字转成unicode,对所述汉字简拼首字母表和所述汉字全拼首字母表,使用unicode做下标并生成一map(map是存储键和值这样的双列数据的集合),更进一步,对搜索内容中对难以处理的汉字部分通过unicode的特性,使其无需查找直接转译出对应的编码,时间复杂度降为o(1)。

步骤s204根据上述unicode对应的简拼和/或全拼建立新索引,生成缓存文件并保存至本地。

全码表的方式能够对所有需要搜索的内容根据其特性建立多重索引把搜索条件放宽,无论用其代码、名词、简拼、全拼甚至混合使用都能支持内容搜索。

作为上述实施例中的优选,还包括了对所述搜索内容中的汉字进行统一化编码处理的方式为:unicode,无需查找而直接转译出对应的编码。

作为上述实施例中的优选,所述每一个需要生成索引的内容为:代码属性、名称属性以及名称简拼属性。上述每一个需要生成索引属性中包括但不限于:代码索引属性、名称索引属性、简拼索引属性以及全拼索引属性。以股票“金证股份”为列:

其中,代码索引就是对其股票代码600446的每一位都建个索引,这样当输入数字“6”的时候会找“6”的索引对应了哪些股票,然后再输入“0”也是同理,每次都取对应股票的交集,最后就确认出了结果。

其中,名称索引,是以汉字“金证股份”做索引。

其中,简拼索引,jzgf,是对这几个字母做索引。

其中,全拼索引,jinzhengufen,是对全拼字母做索引。

请参考图3是本发明一实施例中的搜索流程示意图;包括步骤为:

步骤s300启动客户端,客户端包括:pc、安卓、iphone、wp、ipad、mac的客户端。

步骤s301判断是否有索引缓存文件,作为判断直接登录搜索或者建立索引缓存再搜索的判断条件

步骤s302如果有就直接登录,包括但不限于登录用户的id、用户的账号等。

步骤s303如果没有就生成索引,

步骤s304读取股票、指数、板块、指标、功能等所有需要查询的内容

步骤s305建立索引,对所有需要搜索的内容建立多重索引,所述多重索引包括:{代码}、{名词}、{简拼}、{全拼}、{混合}。

请参考图4是本发明一实施例中的创建索引流程示意图,包括步骤为:

步骤s400创建索引

步骤s401对每个需要生成索引的内容

步骤s402用名称建一个索引

步骤s403用名称简拼建索引

步骤s404用代码(如股票代码或功能代码)建一个索引

步骤s405汉字处理流程,当名称中有汉字的时候需要特殊处理一下,因为汉字不像数字和字母只有0-9或a-z,数量较为庞大,如果每个汉字搜索的话是比较耗时的。但当编码统一时(比如都用unicode),每个汉字对应一个编码,直接转译出来对其编码创建索引即可。

步骤s406生成一张汉字简拼首字母表(优选地使用unicode编码)

步骤s407生成一张汉字全拼首字母表(优选地使用unicode编码)

步骤s408对每个需要搜索的汉字,先转成unicode

步骤s409对汉字简拼首字母表用unicode做下标生成一个map(如果生成过了跳过此步骤)

步骤s410对汉字全拼首字母表用unicode做下标生成一个map(如果生成过了跳过此步骤)

步骤s411对此unicode对应的简拼建立索引

步骤s412对此unicode对应的简拼建立索引

步骤s413生成对应的缓存文件,方便以后使用

步骤s414继续登录流程

请参考图5是本发明另一实施例中的搜索流程流程示意图,包括步骤为:

步骤s500输入关键词

步骤s501对输入的关键词每个数字或字母或汉字,用索引去查找

步骤s502是否有索引

步骤s503没有就补充索引

步骤s504有索引,就用索引查找,然后合并结果集

步骤s505对收索结果进行优先级排序

步骤s506将排序后的结果展示给用户

请参考图6是本发明一实施例中的系统结构示意图,本实施例中的一种全码表多维数组交叉搜索装置,包括:查询输入单元1,搜索单元2、索引创建单元3以及显示单元4,所述查询输入单元1,用以作为搜索内容的输入窗口,所述索引创建单元3,用以判断所述搜索内容是否建立过索引,所述搜索单元2,用以使用上述索引进行查找得到搜索结果,对所述搜索结果进行优选级排序,所述显示单元4,用以输出搜索结果。

作为本实施例中的优选,上述装置被配置为一客户端,所述客户端包括:pc、安卓、iphone、wp、ipad、mac的客户端,从而支持用户在无线端的访问。

作为本实施例中的优选,所述查询输入单元1,还用以接收关键词输入,并对输入所述关键字的每个数字、字母或者汉字,输入到所述搜索单元进行搜索。

作为本实施例中的优选,在所述搜索单元2对所有需要搜索的内容建立多重索引,所述多重索引包括:{代码}、{名词}、{简拼}、{全拼}、{混合}。

作为本实施例中的优选,在所述搜索单元2通过unicode直接转译出对应的编码,其中时间复杂度降为o(1)。

在一些实施例中,上述搜索内容包括但不限于:股票、指数、功能或者指标。

在一些实施例中,在所述索引创建单元3中创建搜索内容的新索引的方法具体包括:

对所述搜索内容中每一个需要生成索引的内容建立:一代码索引、一名称索引以及一名称简拼索引,

对所述搜索内容中的汉字进行统一化编码处理,

生成一汉字简拼首字母表,同时生成一汉字全拼首字母表,

将所述搜索内容中每个需要搜索的汉字转成unicode,对所述汉字简拼首字母表和所述汉字全拼首字母表,使用unicode做下标并生成一map,

根据上述unicode对应的简拼和/或全拼建立新索引,

生成缓存文件并保存至本地。

上述索引创建单元3中,还用对所述搜索内容中的汉字进行统一化编码处理的方式为:unicode。

上述索引创建单元3,还用以对所述每一个需要生成索引的内容为:代码属性、名称属性以及名称简拼属性。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

此外,虽然操作以特定顺序描述,但是这不应被理解为要求这类操作以所示的顺序执行或是以顺序序列执行,或是要求所有所示的操作被执行以实现期望结果。在一些情形下,多任务或并行处理可以是有利的。类似地,虽然若干具体实现方式的细节在上面的讨论中被包含,但是这些不应被解释为对本公开的范围的任何限制,而是特征的描述仅是针对具体实施例。在分离的一些实施例中描述的某些特征也可以在单个实施例中组合地执行。相反对,在单个实施例中描述的各种特征也可以在多个实施例中分离地实施或是以任何合适的子组合的方式实施。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1