CN102682017A - 一种信息检索方法和系统 - Google Patents
一种信息检索方法和系统 Download PDFInfo
- Publication number
- CN102682017A CN102682017A CN2011100616575A CN201110061657A CN102682017A CN 102682017 A CN102682017 A CN 102682017A CN 2011100616575 A CN2011100616575 A CN 2011100616575A CN 201110061657 A CN201110061657 A CN 201110061657A CN 102682017 A CN102682017 A CN 102682017A
- Authority
- CN
- China
- Prior art keywords
- character
- node
- retrieved
- retrieval
- information
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种信息检索方法和系统,其中,所述方法包括:接收用户输入的待检索信息;判断所述待检索信息是否合法,并结合预先构造的节点树对合法待检索信息进行检索,给出检索结果,并根据该检索结果给出所述待检索信息所对应的商品信息。本申请实施例所提供的信息检索方案结合预先构造的节点树对合法检索信息字符串化之后,进行逐字符对比,最多一次对比完成以后即可给出检索结果,检索快速准确,极大地提高了检索效率和准确率。
Description
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种信息检索方法和系统。
背景技术
基于网络实现的各种功能和服务极大地方便了人们的工作、生活以及学习的各个方面,例如,网络购物已经成为一种极为普遍的购物方式,为用户带来了极大的便利。
现有的购物网站一般采用基于分类目录的购物系统,需要预先定义好不同的分类和不同的目录系统,然后将商品、商户归为不同的分类或者目录。
发明人通过研究发现,用户基于现有的购物网站的检索系统检索需要购买的商品时,一般只输入商品名称,或者是模糊的商品类别,并不能直接精确到某一个特定的分类,因此,根据用户输入的较为模糊的信息进行检索时势必影响检索速度。
当用户根据广告等途径知道某一商品的具体分类信息,或者某一具体商品的信息时,由于购物网站上通常包括大量的商品信息,并且每个卖家出售的商品众多,用户仍需要经过多次搜索、点击等操作才能找到用户具体想要查看或购买的商品。这不但浪费用户的大量时间,而且增加了购物网站的服务器的负担,并且占用了网络的带宽。
发明内容
有鉴于此,本申请实施例的目的是提供一种信息检索方法和系统,以实现快速便捷的信息检索,减轻服务器的负担,节省网络带宽。
为实现上述目的,本申请实施例提供了如下技术方案:
一种信息检索方法,包括:
接收用户输入的待检索信息;
判断所述待检索信息是否合法;
结合预先构造的节点树对合法待检索信息进行检索,给出检索结果,并根据该检索结果给出所述待检索信息所对应的商品信息。
所述结合预先构造的节点树对合法待检索信息进行检索包括:
根据合法待检索信息获得待检索字符串;
从所述待检索字符串的首位字符开始,将所述待检索字符串逐字符与预先构造的节点树进行逐字符比较。
所述逐字符比较包括:
判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点的子节点,如果是,则找到下一个要比较的字符所对应节点,继续比较,直至找到最后一位待检索字符串对应的节点,确定输出结果;否则,则结束逐字符比较,给出检索失败提示。
所述节点树的每个节点所记录的信息包括:
该节点的当前节点值、该节点的模板数组、状态数组。
判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点所关联的子节点包括:
获取当前所比较字符对应的节点记录的模板数组和状态数组;
获取与当前所比较字符相邻的下一字符;
结合所述模板数组和所述状态数组确定所述与当前所比较字符相邻的下一字符的是否为当前所比较字符对应的节点所的子节点。
结合所述模板数组和所述状态数组确定所述与当前所比较字符相邻的下一字符的是否为当前所比较字符对应的节点所的子节点包括:
确定所述与当前所比较字符相邻的下一字符在模板数组中的存储位置;
获取状态数组在该存储位置的对应位置的状态值;
如果状态数组中所述存储位置的对应位置的状态值为元素存在,则确定所述与当前所比较字符相邻的下一字符是当前所比较字符对应的节点的子节点;否则,确定所述与当前所比较字符相邻的下一字符的不是当前所比较字符对应的节点的子节点。
构造所述节点树包括:
统计一信息系统中所有检索代码中出现的所有元素;
以空节点作为根节点,根据各个检索代码首字符确定所述根节点的子节点,即首字符节点;
根据各个检索代码首字符邻接的字符确定所述首字符节点的子节点,以此类推,直至确定每个节点的叶子节点;
根据已经建立起来的各个节点之间的拓扑关系确定各个节点的模板数组和对应的状态数组。
一种信息检索系统,包括:
接收单元,用于接收用户输入的待检索信息;
合法性检测单元,用于判断所述待检索信息是否合法;
检索单元,用于结合预先构造的节点树对合法待检索信息进行检索,给出检索结果,并根据该检索结果给出所述待检索信息所对应的商品信息。
所述检索单元包括:
预处理子单元,用于根据所述合法待检索信息获得待检索字符串;
比较子单元,用于从所述待检索字符串的首位字符开始,将所述待检索字符串逐字符与预先构造的节点树进行逐字符比较;
输出子单元,用于根据所述逐字符比较的比较结果给出对所述待检索信息的检索结果,并根据该检索结果给出所述待检索字符串所对应的商品信息。
所述比较子单元包括:
获取模块,用于获取所述待检索字符串;
比较模块,用于从所述待检索字符串的首字符开始进行比较,判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点的子节点,如果是,则找到下一个要比较的字符所对应节点,直至找到最后一位待检索字符串对应的节点,继续比较,确定输出结果;否则,则结束逐字符比较,给出检索失败提示。
所述节点树的每个节点所记录的信息包括:
该节点的当前节点值、该节点的模板数组、状态数组。
所述比较模块包括:
第一获取部件,用于获取当前所比较字符对应的节点记录的模板数组和状态数组;
第二获取部件,用于获取与当前所比较字符相邻的下一字符;
判断部件,用于结合所述模板数组和所述状态数组判断所述与当前所比较字符相邻的下一字符的是否为当前所比较字符对应的节点的子节点。
所述判断部件包括:
位置确定子部件,用于确定所述与当前所比较字符相邻的下一字符在模板数组中的存储位置;
状态值确定子部件,用于获取状态数组在该存储位置的对应位置的状态值;
判断子部件,用于在所述状态数组的所述存储位置的对应位置的状态值为元素存在时,确定所述与当前所比较字符相邻的下一字符是当前所比较字符对应的节点的子节点;否则,确定所述与当前所比较字符相邻的下一字符的不是当前所比较字符对应的节点的子节点。
该系统还包括节点树构造单元,包括:
统计子单元,用于统计一信息系统中所有检索代码中出现的所有元素;
第一确定子单元,用于以空节点作为根节点,根据各个检索代码首字符确定所述根节点的子节点,即首字符节点;
第二确定子单元,用于根据各个检索代码首字符邻接的字符确定所述首字符节点的子节点,以此类推,直至确定每个节点的叶子节点;
第三确定子单元,用于根据已经建立起来的各个节点之间的拓扑关系确定各个节点的模板数组和对应的状态数组。
可见,在本申请实施例中,接收用户输入的待检索信息;判断所述待检索信息是否合法;结合预先构造的节点树对合法待检索信息进行检索,给出检索结果,并根据该检索结果给出所述待检索信息所对应的商品信息。本申请实施例所提供的信息检索方案结合预先构造的节点树对合法检索信息字符串化之后,进行逐字符对比,最多一次对比完成以后即可给出检索结果,检索快速准确,极大地提高了检索效率和准确率检索快速准确,减轻服务器的负担,节省网络带宽。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例所提供的方法的流程图
图2为本申请一实施例所提供的方法中一步骤的流程图;
图3为本申请一实施例所提供的方法中一子步骤的流程图;
图4为本申请一实施例所提供的节点树的结构示意图;
图5为本申请一实施例所提供的系统的结构示意图;
图6为本申请一实施例所提供的系统中一单元的结构示意图;
图7为本申请一实施例所提供的系统中一子单元的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
为了更加清楚地对本申请提提供的方法进行描述,下面首先介绍一下本发明将会使用到的几个概念。
待检索字符串:本申请所提供的信息检索方法,无论获得的待检索信息是什么内容,都会通过预处理将待检索信息转化成待检索字符串。这个字符串中的每个元素可以是数字、字母、文字或者符号等等。
状态数组:用来表示对应位置上的字符存在与否的数组。一个字符在一个位置上只可能出现两种状态,存在或者不存在。本申请实施例中,如果一个字符在某个对应的位置上存在,则用“1”表示,如果一个字符在某个对应的位置上不存在则用“0”表示。
模板数组:用来记录一个信息检索系统中所有可能出现的字符的数组。其与状态数组相对应。一个节点上的模板数组与状态数组结合确定某个节点上是否关联了某个子节点。
例如一个节点的模板数组为[a][b][c][d][e][f][m],如果这个节点的状态数组为[1][0][0][0][1][1][1],那么将该节点的模板数组和状态数组结合起来分析可以知道,该节点关联的子节点包括a、e、f和m。
节点树:本申请实施例所提供的搜索方法的基础。节点树由节点构成。节点树中的节点按其分布位置的不同分为根节点、多级子节点、叶子节点。参见图4,其中R节点是根节点。从根节点向下,与根节点连接的节点均为子节点。如节点a,b,d等;没有下一级的子节点的节点称为叶子节点,如节点m、节点f。
节点树中的每个节点所记录的信息包括:该节点的当前节点值、该节点的模板数组、状态数组。
节点值记录当前节点所对应的字符。本申请实施例中,为描述方便,使用一个节点的节点值来描述该节点。
本申请实施例中,模板数组用于记录信息系统中使用的基本元素以及各个基本元素在模板数组中的位置。状态数组用于记录在一个节点的子节点上,模板数组中对应位置的元素存在的状态。下面举例对一个节点上的模板数组与状态数组之间的对应关系进行说明:
例如,一个信息系统中用10个小写字母作为基本元素,模板数组为[a][b][c]......[j]。那么如果一个节点a状态数组为[1][0][1][0][1][0][1][0][1][0],即状态数组的第1、3、5、7、9位的状态值为1,则说明模板数组的第1、3、5、7和第9位对应的元素[a],[c],[g]和[i]是该节点a的子节点。
本申请实施例中,节点的子节点的关系实际上标志着待检索字符之间的相邻接的关系,具体而言,也就是说,如果在这个信息系统中,搜索一个“af”的字符串,输出结果应该是“输入错误”。因为从节点a记录的模板数组和状态数组来看,节点a的子节点为[a]、[c]、[g]和[i],没有“f”,所以“af”是错误字符串。
为了节省存储空间,一个信息系统中可以使用一个统一的模板数组。模板数组中的各个元素的位置可以按照各个元素的自然顺序排序,例如对于数字元素,一般按照0-9的顺序排序,当然也可以自行规定顺序,本申请不做限定。
构造所述节点树的过程包括:
统计一信息系统中所有检索代码中出现的所有元素;
以空节点作为根节点,根据各个检索代码首字符确定所述根节点的子节点,即首字符节点;
根据各个检索代码首字符邻接的字符确定所述首字符节点的子节点,以此类推,直至确定每个节点的叶子节点;
根据已经建立起来的各个节点之间的拓扑关系确定各个节点的模板数组和对应的状态数组。
实际应用中,某个节点是子节点的确定和该节点的模板数组与状态数组确定之间没有必然的逻辑顺序,可以根据实际情况进行。
下面用5个简单的检索代码来描述一下节点树构造的过程。
例如某一信息系统中的5个检索代码分别为abc、ade、adf、dcm、add,其形成的节点树如图4所示。
首先统计这5个检索代码所出现的所有元素,包括a、b、c、d、e、f和m共7个字母。
一般情况下会以一个空节点作为节点树的根节点R,本例中,空节点的模板数组为[a][b][c][d][e][f][m],空节点之下连接的是作为首字符出现的首字符节点。本例中,a和d作为首字符出现了,所以空节点的首字符子节点是a和d,因此,其状态数组为[1][0][0][1][0][0][0]。
如上所述,本申请实施例中,一个信息系统一个都沿用同一个模板数组,而且模板数组中沿用元素的自然顺序。本例中的模板数组为[a][b][c][d][e][f][m]。通过上述5个检索代码的统计可以看出,5个检索代码中首字母a元素相邻接的下一个元素只有b和d,所以a节点状态数组为[0][1][0][1][0][0][0],根据a节点以及它的状态数组可以确定a节点的两个子节点:节点b和节点d。节点b的状态数组为[0][0][1][0][0][0][0],节点b的子节点为节点c。节点d的状态数组为[0][0][0][1][1][1][0]。节点d有3个子节点,分别是节点d,节点e和节点f。
首字母d节点的状态数组为[0][0][1][0][0][0][0]。相应地,d节点的子节点为节点c。节点c的状态数组为[0][0][0][0][0][0][1],所以节点c的子节点为节点m。最后绘制出的节点树可以参见图4。
本申请实施例所提供的是一种信息检索方法和系统。首先,需要构建出一个信息系统,而后在该信息系统中结合节点树检索所需要的信息。下面,以电子商务平台为例对本申请实施例所提供的信息检索方法和系统进行说明。
背景技术中曾经提到,现有的电子商务平台多通过分类或者目录的方法来为用户提供各种商品信息。这样用户查找商品时因为输入的信息较为模糊从而影响了检索速度。
本申请实施例提供一种新的信息构建方法,利用散列技术处理商品信息、商户信息、同类商品信息。其基本原理是:
1、将商品信息、商户信息、同类商品信息、时间戳等信息以二进制方式表示,并按照32位的长度构造矩阵,将矩阵看作一个多维向量矩阵;
例如:有个如下的商品信息:
商品名:Iphone
商户名:Apple
时间信息:2009-12-24
那么根据预设的散列规则,可得到类似下面这样的矩阵A:
69 70 68 6F 6E 00 00 00
41 70 70 6C 65 00 00 00
32 0 30 39 31 32 32 24
2、对这个多维向量矩阵的行进行按64位进行对齐,生成多个子矩阵,并对每个子矩阵进行按行异或(XOR),将64维降成一维;
例如,用矩阵A的第一行和第二行进行按字节的XOR:
(69 XOR 41)(70 XOR 70)(68 XOR 70)...(OO XOR 00)(00 XOR 00)
得到
28 0 18...00 00
3、对每个子矩阵生成的降维结果进行同样的处理,最后得到一个一维的向量;
例如,对上面的矩阵A,在得到28 00 18...00 00这个向量后,用这个向量与矩阵A的第三行对应位置再进行异或:
(28 XOR 32)(00 XOR 30)(18 XOR 30)...(00 XOR 32)(00 XOR 24)
得到一个一维向量如下所示:
1A 30 28...32 24
4、对该一维向量进行二进制对折处理,处理方法是对对折后的对应位的求异或后得到的一个代码,本实施例中,最后得到的这个代码被称为检索代码。
继续上面的例子,即对上面得到的一维向量进行首位位或运算:
(1A XOR 24)(30 XOR 32)...
于是得到32位的检索代码:
3E 02...
本申请实施例中,在建立该检索代码与对应商品信息的关联后,利用这个检索代码结合本实施例提供的检索系统就可以快速地对商品信息进行检索。
实际上,本领域技术人员可以知道,本申请所构造的检索代码和该实施例中信息系统只是一种将信息数字化、代码化的一种具体的例子,本领域技术人员可以根据信息的具体特点通过其他的方式将信息数字化、代码化,本申请实施例对此不做限定。
当用户需要进一步了解产品的详细信息时,通过本申请提供的如下检索方法,通过正确的检索代码就可以获得对应的产品的内容。
参见图1,本申请一实施例提供的所述检索方法,包括:
S101、接收用户输入的待检索信息;
S102、判断所述待检索信息是否合法;
实际应用中,判定待检索信息的合法性可以伴随接收待检索信息同时进行。例如可以在一接收到非法字符时就提示输入非法,或者在待检索信息全部输入完毕后提示。
所谓的非法信息记为应用本检索方法的检索系统中不认可的信息。具体情况根据具体的应用确定,本申请不做限定。
S103、结合预先构造的节点树对合法待检索信息进行检索,给出检索结果,并根据该检索结果给出所述待检索信息所对应的商品信息
该步骤S103具体包括:
根据合法待检索信息获得待检索字符串;
通过前面的描述可以知道,本申请实施例所提供检索方法在获得待检索信息经过合法性检测后,将合法的待检索信息转化为待检索字符串,以待检索字符串为检索对象进行检索。
而后从所述待检索字符串的首位字符开始,将所述待检索字符串结合预先构造的节点树进行逐字符比较;
节点树的构建过程前面已经详细描述,此处不再赘述。
所述逐字符比较具体包括:
判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点的子节点,如果是,找到下一个要比较的字符所对应节点,继续比较,直至找到最后一位待检索字符串对应的节点,确定输出结果;否则,则结束所进行的逐字符比较,给出检索失败提示。
本领域技术人员可以知道,如果所述待检索字符串是本信息系统的检索代码,那么通过该系统的检索应该可以得到对应的商品信息。
参见图2,所述逐字符比较过程中,判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点的子节点包括:
S201、获取当前所比较字符对应的节点的模板数组和状态数组;
S202、获取与当前所比较字符相邻的下一字符;
S203、根据所述模板数组和所述状态数组,确定所述与当前所比较字符相邻的下一字符是否为当前所比较字符对应的节点的子节点。
本申请一实施例中,参见图3,步骤S203具体包括:
S301、确定所述与当前所比较字符相邻的下一字符在模板数组中的存储位置;
S302、获取状态数组在该存储位置的对应位置的状态值信息;
S303、如果状态数组中所述存储位置的对应位置的状态值信息为存在,则确定所述与当前所比较字符相邻的下一字符是当前所比较字符对应的节点的子节点;否则,确定所述与当前所比较字符相邻的下一字符的不是当前所比较字符对应的节点的子节点。
本申请实施例所提供的信息检索方法将待检索信息字符串化之后,结合预先构造的节点树进行逐字符对比后即可给出检索结果,检索快速准确,极大地提高了检索效率和准确率。
参见图5,本申请实施例还提供一种信息检索系统,该系统包括:
接收单元501,用于接收用户输入的待检索信息;
合法性检测单元502,用于判断所述待检索信息是否合法;
检索单元503,用于结合预先构造的节点树对合法待检索信息进行检索,给出检索结果,并根据该检索结果给出所述待检索信息所对应的商品信息。
参见图6,所述检索单元503包括:
预处理子单元5031,用于根据所述合法待检索信息获得待检索字符串;
比较子单元5032,用于从所述待检索字符串的首位字符开始,将所述待检索字符串逐字符与预先构造的节点树进行逐字符比较;
其中,节点树的每个节点所记录的信息包括:该节点的当前节点值、该节点的模板数组、状态数组。
输出子单元5033,用于根据所述逐字符比较的比较结果给出对所述待检索信息的检索结果,并根据该检索结果给出当前待检索字符串所对应的商品信息。
为了实现节点树的构造,该系统还包括节点树构造单元,具体包括:
统计模块,用于统计一信息系统中所有检索代码中出现的所有元素;
第一确定模块,用于以空节点作为根节点,根据各个检索代码首字符确定所述根节点的子节点,即首字符节点;
第二确定模块,用于根据各个检索代码首字符邻接的字符确定所述首字符节点的子节点,以此类推,直至确定每个节点的叶子节点;
第三确定模块,用于根据已经建立起来的各个节点之间的拓扑关系确定各个节点的模板数组和对应的状态数组。
本申请一实施例中,参见图7,所述比较子单元5032包括:
获取模块701,用于获取所述待检索字符串;
比较模块702,用于从所述待检索字符串的首字符开始进行比较,判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点的子节点,如果是,则找到下一个要比较的字符所对应节点,继续比较,直至找到最后一位待检索字符串对应的节点,确定输出结果;否则,则结束逐字符比较,给出检索失败提示。
本申请一实施例中,所述比较模块702包括:
第一获取部件,用于获取当前所比较字符对应的节点记录的模板数组和状态数组;
第二获取部件,用于获取与当前所比较字符相邻的下一字符;
判断部件,用于结合所述模板数组和所述状态数组判断所述与当前所比较的字符相邻的下一字符的是否为当前所比较字符对应的节点的子节点。
具体地,所述判断部件包括;
位置确定子部件,用于确定所述与当前所比较字符相邻的下一字符在模板数组中的存储位置;
状态值确定子部件,用于获取状态数组在该存储位置的对应位置的状态值;
判断子部件,用于在所述状态数组的所述存储位置的对应位置的状态值为元素存在时,确定所述与当前所比较字符相邻的下一字符是当前所比较字符对应的节点的子节点;否则,确定所述与当前所比较字符相邻的下一字符不是当前所比较字符对应的节点的子节点。
本申请实施例所提供的信息检索系统将待检索信息字符串化之后,结合预先构造的节点树进行逐字符对比后即可给出检索结果,检索快速准确,极大地提高了检索效率和准确率。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (14)
1.一种信息检索方法,其特征在于,包括:
接收输入的待检索信息;
判断所述待检索信息是否合法;
结合预先构造的节点树对合法待检索信息进行检索,给出检索结果,并根据该检索结果给出所述待检索信息所对应的商品信息。
2.根据权利要求1所述的方法,其特征在于所述结合预先构造的节点树对合法待检索信息进行检索包括:
根据合法待检索信息获得待检索字符串;
从所述待检索字符串的首位字符开始,将所述待检索字符串逐字符与预先构造的节点树进行逐字符比较。
3.根据权利要求1所述的信息检索方法,其特征在于,所述逐字符比较包括:
判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点的子节点,如果是,则找到下一个要比较的字符所对应节点,继续比较,直至找到最后一位待检索字符串对应的节点,确定输出结果;否则,则结束逐字符比较,给出检索失败提示。
4.根据权利要求3所述的方法,其特征在于,所述节点树的每个节点所记录的信息包括:
该节点的当前节点值、该节点的模板数组、状态数组。
5.根据权利要求4所述的方法,其特征在于,判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点所关联的子节点包括:
获取当前所比较字符对应的节点记录的模板数组和状态数组;
获取与当前所比较字符相邻的下一字符;
结合所述模板数组和所述状态数组确定所述与当前所比较字符相邻的下一字符的是否为当前所比较字符对应的节点所的子节点。
6.根据权利要求5所述的方法,其特征在于,结合所述模板数组和所述状态数组确定所述与当前所比较字符相邻的下一字符的是否为当前所比较字符对应的节点所的子节点包括:
确定所述与当前所比较字符相邻的下一字符在模板数组中的存储位置;
获取状态数组在该存储位置的对应位置的状态值;
如果状态数组中所述存储位置的对应位置的状态值为元素存在,则确定所述与当前所比较字符相邻的下一字符是当前所比较字符对应的节点的子节点;否则,确定所述与当前所比较字符相邻的下一字符的不是当前所比较字符对应的节点的子节点。
7.根据权利要求1-6任意一项所述的方法,其特征在于,构造所述节点树包括:
统计一信息系统中所有检索代码中出现的所有元素;
以空节点作为根节点,根据各个检索代码首字符确定所述根节点的子节点,即首字符节点;
根据各个检索代码首字符邻接的字符确定所述首字符节点的子节点,以此类推,直至确定每个节点的叶子节点;
根据已经建立起来的各个节点之间的拓扑关系确定各个节点的模板数组和对应的状态数组。
8.一种信息检索系统,其特征在于,包括:
接收单元,用于接收用户输入的待检索信息;
合法性检测单元,用于判断所述待检索信息是否合法;
检索单元,用于结合预先构造的节点树对合法待检索信息进行检索,给出检索结果,并根据该检索结果给出所述待检索信息所对应的商品信息。
9.根据权利要求8所述的检索系统,其特征在于,所述检索单元包括:
预处理子单元,用于根据所述合法待检索信息获得待检索字符串;
比较子单元,用于从所述待检索字符串的首位字符开始,将所述待检索字符串逐字符与预先构造的节点树进行逐字符比较;
输出子单元,用于根据所述逐字符比较的比较结果给出对所述待检索信息的检索结果,并根据该检索结果给出所述待检索字符串所对应的商品信息。
10.根据权利要求9所述的系统,其特征在于,所述比较子单元包括:
获取模块,用于获取所述待检索字符串;
比较模块,用于从所述待检索字符串的首字符开始进行比较,判断与当前所比较字符相邻的下一字符是否是当前所比较字符对应的节点的子节点,如果是,则找到下一个要比较的字符所对应节点,直至找到最后一位待检索字符串对应的节点,继续比较,确定输出结果;否则,则结束逐字符比较,给出检索失败提示。
11.根据权利要求10所述的系统,其特征在于,所述节点树的每个节点所记录的信息包括:
该节点的当前节点值、该节点的模板数组、状态数组。
12.根据权利要求11所述的系统,其特征在于,所述比较模块包括:
第一获取部件,用于获取当前所比较字符对应的节点记录的模板数组和状态数组;
第二获取部件,用于获取与当前所比较字符相邻的下一字符;
判断部件,用于结合所述模板数组和所述状态数组判断所述与当前所比较字符相邻的下一字符的是否为当前所比较字符对应的节点的子节点。
13.根据权利要求12所述的系统,其特征在于,所述判断部件包括:
位置确定子部件,用于确定所述与当前所比较字符相邻的下一字符在模板数组中的存储位置;
状态值确定子部件,用于获取状态数组在该存储位置的对应位置的状态值;
判断子部件,用于在所述状态数组的所述存储位置的对应位置的状态值为元素存在时,确定所述与当前所比较字符相邻的下一字符是当前所比较字符对应的节点的子节点;否则,确定所述与当前所比较字符相邻的下一字符的不是当前所比较字符对应的节点的子节点。
14.根据权利要求8-13任意一项所述的系统,其特征在于,该系统还包括节点树构造单元,包括:
统计子单元,用于统计一信息系统中所有检索代码中出现的所有元素;
第一确定子单元,用于以空节点作为根节点,根据各个检索代码首字符确定所述根节点的子节点,即首字符节点;
第二确定子单元,用于根据各个检索代码首字符邻接的字符确定所述首字符节点的子节点,以此类推,直至确定每个节点的叶子节点;
第三确定子单元,用于根据已经建立起来的各个节点之间的拓扑关系确定各个节点的模板数组和对应的状态数组。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110061657.5A CN102682017B (zh) | 2011-03-15 | 2011-03-15 | 一种信息检索方法和系统 |
HK12110491.9A HK1169731A1 (zh) | 2011-03-15 | 2012-10-22 | 種信息檢索方法和系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110061657.5A CN102682017B (zh) | 2011-03-15 | 2011-03-15 | 一种信息检索方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102682017A true CN102682017A (zh) | 2012-09-19 |
CN102682017B CN102682017B (zh) | 2014-04-23 |
Family
ID=46813963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110061657.5A Active CN102682017B (zh) | 2011-03-15 | 2011-03-15 | 一种信息检索方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102682017B (zh) |
HK (1) | HK1169731A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678708A (zh) * | 2013-12-30 | 2014-03-26 | 小米科技有限责任公司 | 一种识别预设地址的方法及装置 |
CN104714947A (zh) * | 2013-12-11 | 2015-06-17 | 深圳市腾讯计算机系统有限公司 | 预定类型号码识别方法及装置 |
CN106021397A (zh) * | 2016-05-12 | 2016-10-12 | 武汉斗鱼网络科技有限公司 | 一种关键词查找的树结构及实现方法 |
CN109241356A (zh) * | 2018-06-22 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
CN111061829A (zh) * | 2019-12-16 | 2020-04-24 | 北京软通智慧城市科技有限公司 | 一种树型检索方法及装置 |
CN112994927A (zh) * | 2021-02-04 | 2021-06-18 | 海光信息技术股份有限公司 | 一种菊花链拓扑的检索方法及检索装置 |
CN113392225A (zh) * | 2021-06-07 | 2021-09-14 | 李超 | 一种思维导图的生成方法、系统以及电子设备 |
CN113609352A (zh) * | 2021-08-03 | 2021-11-05 | 北京恒安嘉新安全技术有限公司 | 字符串检索方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1979482A (zh) * | 2006-11-08 | 2007-06-13 | 中国工商银行股份有限公司 | 一种基于键树的特定文本信息处理方法及系统 |
CN101154228A (zh) * | 2006-09-27 | 2008-04-02 | 西门子公司 | 一种分段模式匹配方法及其装置 |
CN101639830A (zh) * | 2009-09-08 | 2010-02-03 | 西安交通大学 | 一种输入过程中的中文术语自动纠错方法 |
-
2011
- 2011-03-15 CN CN201110061657.5A patent/CN102682017B/zh active Active
-
2012
- 2012-10-22 HK HK12110491.9A patent/HK1169731A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154228A (zh) * | 2006-09-27 | 2008-04-02 | 西门子公司 | 一种分段模式匹配方法及其装置 |
CN1979482A (zh) * | 2006-11-08 | 2007-06-13 | 中国工商银行股份有限公司 | 一种基于键树的特定文本信息处理方法及系统 |
CN101639830A (zh) * | 2009-09-08 | 2010-02-03 | 西安交通大学 | 一种输入过程中的中文术语自动纠错方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714947A (zh) * | 2013-12-11 | 2015-06-17 | 深圳市腾讯计算机系统有限公司 | 预定类型号码识别方法及装置 |
CN103678708A (zh) * | 2013-12-30 | 2014-03-26 | 小米科技有限责任公司 | 一种识别预设地址的方法及装置 |
CN103678708B (zh) * | 2013-12-30 | 2017-01-18 | 小米科技有限责任公司 | 一种识别预设地址的方法及装置 |
CN106021397A (zh) * | 2016-05-12 | 2016-10-12 | 武汉斗鱼网络科技有限公司 | 一种关键词查找的树结构及实现方法 |
CN109241356A (zh) * | 2018-06-22 | 2019-01-18 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
CN111061829A (zh) * | 2019-12-16 | 2020-04-24 | 北京软通智慧城市科技有限公司 | 一种树型检索方法及装置 |
CN112994927A (zh) * | 2021-02-04 | 2021-06-18 | 海光信息技术股份有限公司 | 一种菊花链拓扑的检索方法及检索装置 |
CN113392225A (zh) * | 2021-06-07 | 2021-09-14 | 李超 | 一种思维导图的生成方法、系统以及电子设备 |
CN113609352A (zh) * | 2021-08-03 | 2021-11-05 | 北京恒安嘉新安全技术有限公司 | 字符串检索方法、装置、计算机设备及存储介质 |
CN113609352B (zh) * | 2021-08-03 | 2023-08-04 | 北京恒安嘉新安全技术有限公司 | 字符串检索方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
HK1169731A1 (zh) | 2013-02-01 |
CN102682017B (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102682017B (zh) | 一种信息检索方法和系统 | |
JP5922667B2 (ja) | 製品情報の伝送 | |
CN1713179B (zh) | 在对象模型中的影响分析 | |
US11238402B2 (en) | Information operation | |
US20120110565A1 (en) | Chained data processing and application utilization | |
CN104704522A (zh) | 推荐原生应用 | |
CN103118140A (zh) | 将文件分享给关系圈外其他用户终端的方法、系统及装置 | |
CN104199863A (zh) | 存储设备上的文件的查找方法、装置及路由器 | |
US9886711B2 (en) | Product recommendations over multiple stores | |
Snevely | Enterprise data center design and methodology | |
CN111461754A (zh) | 一种确定订单的流量来源的方法和装置 | |
CN113434506A (zh) | 数据管理及检索方法、装置、计算机设备及可读存储介质 | |
CN102289456A (zh) | Web爬行的差异检测 | |
US9843635B2 (en) | Data replication among portable electronic devices | |
CN111611230A (zh) | 主数据系统的建立方法、装置、计算机设备及存储介质 | |
CN103530408A (zh) | 一种多媒体文件推荐方法及装置 | |
CN103593790A (zh) | 讯息推送系统及方法 | |
CN110928667B (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN103164527A (zh) | 检索方法及设备 | |
CN113780921B (zh) | 一种询价处理方法和装置 | |
CN112348140B (zh) | 条形码信息存储方法、查询方法、电子装置和存储介质 | |
Oliva | Mining the ethereum blockchain platform: best practices and pitfalls (MSR 2022 tutorial) | |
KR20110131841A (ko) | 맞춤정보 제공 장치 및 그 제공 방법 | |
CN112732471A (zh) | 接口返回数据的纠错方法和纠错装置 | |
CN114186101A (zh) | 数据处理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1169731 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1169731 Country of ref document: HK |