CN110851722A - 基于字典树的搜索处理方法、装置、设备和存储介质 - Google Patents

基于字典树的搜索处理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN110851722A
CN110851722A CN201911102346.1A CN201911102346A CN110851722A CN 110851722 A CN110851722 A CN 110851722A CN 201911102346 A CN201911102346 A CN 201911102346A CN 110851722 A CN110851722 A CN 110851722A
Authority
CN
China
Prior art keywords
search
character
node
nodes
service
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.)
Pending
Application number
CN201911102346.1A
Other languages
English (en)
Inventor
韩时通
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Cloud Computing Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Cloud Computing Beijing Co Ltd
Priority to CN201911102346.1A priority Critical patent/CN110851722A/zh
Publication of CN110851722A publication Critical patent/CN110851722A/zh
Priority to CN202010479380.7A priority patent/CN111460311A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2468Fuzzy queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种基于字典树的搜索处理方法、装置、设备和存储介质,所述方法包括:接收终端输入的搜索字符;根据所述搜索字符的字符序列在字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列,从所述字符串相应的节点中获取所述字符串对应的权重;根据所述搜索字符和所述字符串生成搜索建议词,根据所述权重对所述搜索建议词进行排序,将排序后的搜索建议词返回至所述终端进行展示;获取所述终端针对目标搜索建议词触发的选择操作,在所述终端的搜索框中展示所述目标搜索建议词。本申请提供的方案能够快速有效地利用字典树匹配搜索字符对应的搜索建议词,从而有效提高了搜索处理的效率。

Description

基于字典树的搜索处理方法、装置、设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于字典树的搜索处理方法、装置、设备和存储介质。
背景技术
随着互联网技术的迅速发展,利用输入框对输入的内容进行搜索的需求日益增长,出现了一些搜索引擎以及输入法等,可以根据用户已输入的字符串利用字典树进行模糊匹配,并将匹配结果推送给用户。然而,目前的搜索结果推荐的方式,在搜索处理时还需要对大量的数据进行分析,并将搜索结果按照搜索频次等计算概率排布,搜索词推荐的过程中计算资源占用较大,搜索数据的推送处理效率较低。
发明内容
基于此,有必要针对搜索数据的推送处理效率较低的技术问题,提供一种基于字典树的搜索处理方法、装置、设备和存储介质。
一种基于字典树的搜索处理方法,包括:
接收终端输入的搜索字符;
根据所述搜索字符的字符序列在字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取所述字符串对应的权重;
根据所述搜索字符和所述字符串生成搜索建议词,根据所述权重对所述搜索建议词进行排序,将排序后的搜索建议词返回至所述终端进行展示;
获取所述终端针对目标搜索建议词触发的选择操作,在所述终端的搜索框中展示所述目标搜索建议词。
一种基于字典树的搜索处理装置,所述装置包括:
接收模块,用于接收终端输入的搜索字符;
匹配模块,用于根据所述搜索字符的字符序列在字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取所述字符串对应的权重;
推送模块,用于根据所述搜索字符和所述字符串生成搜索建议词,根据所述权重对所述搜索建议词进行排序,将排序后的搜索建议词返回至所述终端进行展示;
展示模块,用于获取所述终端针对目标搜索建议词触发的选择操作,在所述终端的搜索框中展示所述目标搜索建议词。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述基于字典树的搜索处理方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述基于字典树的搜索处理方法的步骤。
上述基于字典树的搜索处理方法、装置、设备和存储介质,接收到终端输入的搜索字符后,根据搜索字符在字典树中查找相应的字符节点,根据字符节点在字典树中进行遍历,由此获取子节点序列对应的字符串和权重。由于字典树中存储了多个业务关键词的字符串和对应的权重,因此在字典树中匹配时,能够快速有效地获取与搜索词相匹配字符串以及对应的权重。进而根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示。从而可以获取用户针对目标搜索建议词触发的选择操作,在终端的搜索框中展示目标搜索建议词,以进行搜索处理。通过在字典树中分别配置字符和权重的存储空间,从而能够快速有效地利用字典树匹配搜索词对应的搜索建议词,同时也能够获取搜索建议词对应的权重,无需额外计算搜索建议词的权重再进行排序,有效提高了搜索处理的效率。
附图说明
图1为一个实施例中基于字典树的搜索处理方法的应用环境图;
图2为一个实施例中基于字典树的搜索处理方法的流程示意图;
图3为一个实施例中构建字典树步骤的流程示意图;
图4为一个实施例中字典树的局部树形结构示意图;
图5为一个实施例中查找字符串和权重步骤的流程示意图;
图6为一个实施例中搜索建议词的推送结果的界面示意图;
图7为一个实施例中更新字典树的步骤的流程示意图;
图8为一个实施例中基于字典树的搜索处理装置的结构框图;
图9为另一个实施例中基于字典树的搜索处理装置的结构框图;
图10为另一个实施例中基于字典树的搜索处理装置的结构框图;
图11为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中基于字典树的搜索处理方法的应用环境图。例如,参照图1,该基于字典树的搜索处理方法可以应用于数据搜索系统。该数据搜索系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种基于字典树的搜索处理方法。本实施例主要以该方法应用于上述图1中的服务器120来举例说明。参照图2,该基于字典树的搜索处理方法具体包括如下步骤:
步骤202,接收终端输入的搜索字符。
其中,搜索字符表示用户在终端的输入框中输入的待搜索的词汇,例如,搜索字符可以是用户待搜索的完整的搜索词,也可以是不完整的部分搜索词。搜索字符可以包括字母、汉字、数字、运算符号、标点符号和其他符号等。
终端中可以部署有搜索引擎系统,终端的搜索页面中包括搜索框。搜索框是指数据搜索系统中的交互控件,用于根据在搜索框中输入的搜索字符提取海量信息中相应的准确内容。其中,搜索框可以为输入框,用于获取以及存储用户通过键盘或鼠标输入的文本信息等内容。用户可以通过终端上的搜索框输入待搜索的搜索字符。
具体地,当用户在终端的搜索框中输入待搜索的内容时,服务器可以通过数据搜索系统实时获取用户在终端的搜索框中输入的搜索字符。例如,用户可以在终端的搜索框中输入“公积金”,“公”“积”“金”则为终端输入的搜索字符。
步骤204,根据搜索字符的字符序列在字典树中查找相应的字符节点,遍历字符节点对应的子节点序列,从字典树中提取子节点序列对应的字符串,从字符串相应的节点中获取字符串对应的权重。
其中,字典树又称为单词查找树、前缀树或者键树,是一种树形结构,为一种哈希树的变种。树形结构指的是数据元素之间存在着一对多的树形关系的数据结构,是一类重要的非线性数据结构,树形结构可表示层次关系。字典树不仅可以用来储存字母,也可以储存数字等其它数据。一颗树可以包括根、子树和叶,根相当于树形结构中的树根节点,子树相当于树形结构中的多个子节点,叶相当于树形结构中的叶子节点,每个子树还可以有自己的子树。在树形结构中,树根节点没有前驱节点,其余每个节点有且只有一个前驱节点。叶子节点没有后续节点,其余每个节点的后续节点数可以是一个也可以是多个。字典树中包括公共前缀,公共前缀可以表示多个字符串包括的共同的前缀字符,公共前缀可以为一个字符,也可以为多个连续的字符。利用字典树中字符串的公共前缀进行查询可以减少查询时间,并减少字符串间的比较,从而能够提高查询效率。
传统的字典树中,根节点不包含字符,除根节点外每一个节点都只包含一个字符。从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。因此传统的搜索处理方式中,服务器根据搜索字符在字典树中仅可以匹配出相应的多个搜索建议词,还需要进一步去计算或者另外获取搜索建议词的权重或搜索热度等,再根据权重或搜索热度将多个搜索建议词进行排序并返回给终端。
字典树中包括根节点和多个子节点,根节点不包含字符,根节点可以包括权重。除根节点以外的每个节点均可以存储字符,还可以存储相应的权重。即根节点以外的每个节点包括字符空间和权重空间,字符空间用于存储每个节点的字符,权重空间用于存储节点对应字符串的权重。每个节点的所有子节点包含的字符都不相同。其中,根节点的权重为空,或为初始值,例如根节点的权重可以为“0”。
字典树可以是服务器预先利用大量样本数据进行分析,得到多个业务关键词,并根据相应的搜索热度计算出每个业务关键词的权重。进而利用分析出的多个业务关键词以及对应的权重构建字典树。因此,服务器预先构建的字典树中包括多个业务关键词相应的字符和权重。
其中,字符序列表示由若干字符行程的序列。终端输入的搜索字符包括输入顺序,字符序列可以为根据搜索字符的输入顺序形成的对应的字符序列。节点序列可以表示从任一节点出发到根节点的路径上所经过的节点的序列。子节点序列可以为从当前节点遍历相应的子节点的路径上所经过的节点的序列。
具体地,服务器接收终端输入的搜索字符后,则根据搜索字符在字典树中查找相应的字符节点。若该字符节点包括多个子节点时,搜索字符对应的字符节点可以为公共前缀节点,其中,可以将搜索字符对应的字符节点的最后一个字符节点确定为直接前缀节点。直接前缀节点可以为树形结构中的前驱节点。公共前缀节点可以包括多个字符节点,也可以仅为一个字符节点。直接前缀节点仅为一个节点。服务器进而根据字符节点遍历直接前缀节点对应的子节点序列,从字典树中提取子节点序列对应的字符串,并从字符串相应的节点中获取字符串对应的权重和权重,从而能够快速地在字典树中获取搜索字符所对应的字符串和权重。
举例说明,若终端输入的搜索字符为“公积金”,搜索字符的字符序列则可以为:“公”->“积”->“金”。服务器进而在字典树中查找该字符序列对应的字符节点,并将“公”“积”“金”对应的字符节点作为公共前缀节点,将“金”确定为当前的直接前缀节点。若搜索字符为“公”时,则“公”为公共前缀节点,同时也为直接前缀节点。该节点对应的子节点则可以包括“积”、“平”、“共”等多个子节点。
服务器在字典树中遍历该直接前缀节点对应的多个子节点序列,并获取多个子节点序列对应的字符串和权重。其中,字符串是将字节序列的各子节点对应的字符按字符序列的顺序串接起来,字符串可以包括多个字符,也可以仅为一个字符。例如“公积金”的公共前缀节点下可以包括“贷款”、“提取”、“查询”等多个字符串,每个字符串存储有相应的权重。
步骤206,根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示。
其中,搜索建议词表示在以后搜索的过程中根据用户输入的搜索字符向用户推送与该搜索字符相匹配的推荐信息。
服务器在字典树中匹配到搜索字符所对应的多个字符串后,利用搜索字符对应的公共前缀字符和多个字符串分别生成多个搜索建议词,字典树中匹配得到的字符串的权重则为对应的搜索建议词的权重。
服务器进而根据每个搜索建议词的权重对多个搜索建议词进行排序,其中,排序方式可以为根据权重对多个搜索建议词降序排序,从而得到排序后的搜索建议词。服务器则将排序后的多个搜索建议词返回给终端,并在终端的屏幕上按照排序结果进行展示。
在其中一个实施例中,服务器根据权重对多个搜索建议词降序排序后,还可以提取预设数量的搜索建议词,并将提取的多个搜索建议词返回给终端,并按照排序结果进行展示。
步骤208,获取终端针对目标搜索建议词触发的选择操作,在终端的搜索框中展示目标搜索建议词。
服务器将获取的排序后的搜索建议词返回至终端进行展示后,用户可以对展示的多个搜索建议词进行选择。服务器则获取用户通过终端针对所选的目标搜索建议词触发的选择操作,并将目标搜索建议词输入至搜索框中,并在终端的搜索框中展示目标搜索建议词。服务器则可以进一步根据目标搜索建议词进行搜索相关的信息。
例如,服务器根据终端输入的搜索字符“公积金”,可以在字典树中匹配到多个子节点序列对应的字符串,如可以包括“贷款”、“提取”、“查询”等多个字符串以及对应的权重。服务器则根据搜索字符和字符串生成“公积金贷款”、“公积金提取”、“公积金查询”对应的多个搜索建议词以及权重。服务器则根据权重排序后将多个搜索建议词推送至终端并按照权重排序进行展示,以提供给用户进行选择。用户选择目标搜索建议词后,服务器则将目标搜索建议词在搜索框中进行展示,并根据目标搜索建议词搜索相应的数据资源。
传统的字典树中,根节点不包含字符,除根节点外每一个节点都只包含一个字符。从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。因此传统的搜索处理方式中,服务器根据搜索字符在字典树中仅可以匹配出相应的多个搜索建议词,还需要进一步去计算或者另外获取搜索建议词的权重或搜索热度等,再根据权重或搜索热度将多个搜索建议词进行排序并返回给终端。
上述基于字典树的搜索处理方法,服务器接收到终端输入的搜索字符后,根据搜索字符在字典树中查找相应的字符节点,根据字符节点在字典树中进行遍历,由此获取子节点序列对应的字符串和权重。由于字典树中存储了多个业务关键词的字符串和对应的权重,因此在字典树中匹配时,能够直接从字典树中快速有效地获取与搜索词相匹配字符串以及对应的权重。进而根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示。从而可以获取用户针对目标搜索建议词触发的选择操作,在终端的搜索框中展示目标搜索建议词,以进行搜索处理。通过在字典树中分别配置字符和权重的存储空间,从而能够快速有效地利用字典树匹配搜索词对应的搜索建议词,同时也能够获取搜索建议词对应的权重,无需额外计算搜索建议词的权重再进行排序,有效提高了搜索处理的效率。
在一个实施例中,如图3所示,在接收终端输入的搜索字符之前,还包括构建字典树的步骤,该步骤具体包括以下内容:
步骤302,获取多项样本数据,样本数据包括搜索热度。
步骤304,对样本数据进行关键词提取,得到多个业务关键词和相应的搜索热度。
步骤306,提取业务关键词的公共前缀词,根据公共前缀词生成包括多个关键词业务词的业务关键词集合。
步骤308,根据业务关键词的搜索热度计算业务关键词集合中每个业务关键词的权重。
步骤310,利用业务关键词集合和业务关键词的权重构建字典树。
其中,样本数据可以是业务数据、历史搜索数据以及话题数据等。样本数据可以是本地数据库中的数据,也可以是服务器从若干第三方数据库中获取的样本数据。每个样本数据中包括相应的业务关键词以及对应的搜索热度。搜索热度可以表示包含业务关键词的样本数据在一定时间段内的搜索频次。权重是指某一因素或指标相对于某一事物的重要程度,可以表示业务关键词被搜索的频率程度。例如,业务关键词的搜索热度越高,其对应的权重则越大。
服务器接收终端输入的搜索字符之前,需要预先利用大量的样本数据构建字典树。具体地,服务器可以预先部署字典树的树形结构,其中,服务器首先创建字典树的根节点,树根节点没有前驱节点,其余每个节点有且只有一个前驱节点。对字典树中的每个节点分配字符空间和权重空间,字符空间用于存储每个节点的字符,权重空间用于存储节点对应字符串的权重。每个节点的所有子节点包含的字符都不相同。其中,将字典树的根节点的字符配置为空,根节点的权重为空,或为初始值,例如根节点的权重可以为“0”。
服务器进而对大量的样本数据进行分析,提取出样本数据中的业务关键词,并根据样本数据的搜索热度提取出业务关键词的搜索热度。例如,一项样本数据中可以包括多个业务关键词,通过对多项样本数据的搜索热度进行分析,可以得到每个业务关键词的搜索热度。
其中,多个业务关键词可能包括相同的公共前缀词,业务关键词则包括公共前缀词和相应的业务词。公共前缀词可以包括多个字符,也可以仅为一个字符。服务器可以将包括相同的公共前缀词的多个业务关键词生成业务关键词集合。业务关键词集合中还可以包括每个业务关键词的权重。
在构建字典树的过程中,在字典树结构中生成并插入字符串对应的节点。服务器可以首先将待插入的字符串转换为字符数组,对每个字符进行处理。同时在插入节点的时候可以判断插入的字符串是否为字典树中已插入的某个单词的公共前缀,或者字典树中已插入的某个单词是否是该单词的公共前缀。若当前字符串包括其他字符串的公共前缀,或者其他字符串中包括当前字符串的公共前缀,则对相同公共前缀的字符进行复用。否则将该单词在字典树中新建为相应的子节点。
服务器进而利用多个业务关键词集合以及业务关键词的权重构建字典树。具体地,服务器可以利用业务关键词的每个字符构建一个对应的节点,每个节点可以存储对应的字符以及权重。其中,业务关键词集合中的多个业务关键词包括相同的公共前缀词,在字典树中则可以直接在公共前缀词的字符节点下构建多个业务匹配词相应的子节点。服务器通过构建包括字符和权重的树形结构,由此能够有效构建存储了多个业务关键词的字符串和对应的权重的字典树,从而在字典树中匹配时,能够快速有效地获取与搜索词相匹配字符串以及对应的权重。
在一个实施例中,利用业务关键词集合和业务关键词的权重构建字典树包括:根据公共前缀词确定业务关键词相应的业务词,并确定业务关键词集合中业务关键词的字符序列;根据字符序列和前缀词构建字典树的公共前缀节点,根据字符序列和业务词的字符构建对应的子节点;将业务关键词的权重存储至业务词对应的字符串的节点中。
其中,字典树中的每个节点可以存储相应的字符和权重。业务关键词集合中包括公共前缀词和多个业务词,每个业务关键词由公共前缀词和业务词组成。服务器可以根据公共前缀词以及业务词的顺序确定业务关键词集合中每个业务关键词的字符序列。业务关键词集合中的多个业务词可以为公共前缀词的字符子集。公共前缀词可以包括多个字符,也可以仅为一个字符。
服务器利用业务关键词集合构建字典树的过程中,可以根据公共前缀词和相应的字符序列构建公共前缀节点,公共前缀节点可以包括多个字符节点,也可以仅为一个字符节点。服务器并在前缀节点的基础上,根据字符序列利用该集合中的多个业务词的字符构建对应的多个子节点,每个字符对应一个子节点。服务器构建字典树中的节点时,将相应的字符存储至节点中,并业务关键词的权重存储至业务词对应的字符串的节点中。
业务关键词的权重可以存储至字符子节点中,也可以存储至字符串结尾的末端的叶子节点中。具体地,若字符串包括字符子集,将字符串的权重存储至字符串的最后一个字符的字符节点的权重空间中。例如,“公积金”这个公共前缀词后面可以对应“公积金提取”、“公积金查询”、“公积金贷款”、“公积金存储”、“公积金存储时间”等多个业务关键词。“公积金”的字符子集可以包括“提取”、“查询”、“贷款”、“存储”等,其中,“公积金存储”公共前缀词后面可以对应“公积金存储时间”,则“公积金存储”还可以包括字符子集“时间”。因此,在构建字典树时,则可以将“公积金存储”的权重存储至“储”这个字符对应的子节点中。
若字符串不包括字符子集,在字符串的节点末端配置叶子节点,服务器则将业务关键词的权重存储至该字符串对应的叶子节点中。
在其中一个实施例中,若节点还包括子节点时,可以将该节点的权重确定为空值或初始阈值。例如,服务器还可以将包含子节点的节点权重确定为“0”。当构建出业务词的完整字符串的子节点后,在子节点的末端配置相应的叶子节点,服务器则可以在叶子节点中存储一个预设的结束字符,结束字符用于表示相应的业务关键词的字符序列到此结束。服务器并将该叶子节点对应序列的业务关键词的权重存储至叶子节点。
举例说明,如图4所示,以“公积金贷款”、“公积金提取”、“公积金查询”为例,图4为字典树的局部结构示意图。“公积金贷款”、“公积金提取”、“公积金查询”可以为一个业务关键词集合,业务关键词集合中包括三个业务关键词。其中,“公积金贷款”、“公积金提取”、“公积金查询”均包含“公积金”的公共前缀词,“贷款”、“提取”、“查询”则可以为“公积金”的前缀词对应的业务词。服务器则可以将“公积金”作为公共前缀词构建相应的公共前缀节点,“金”为直接前缀节点,并在“金”的直接前缀节点的基础上构建多个业务词对应字符串的子节点。如图4中所示,第一个节点R为根节点,根节点下面的多个节点n均为子节点,子节点n后面的末端节点l为叶子节点。其中,n1、n2、n3为“公积金贷款”、“公积金提取”、“公积金查询”对应的公共前缀节点,n3位直接前缀节点。服务器进而在每个字符串的子节点的末端构建相应的叶子节点,并在叶子节点存储预设的结束字符,例如结束字符可以为“$”,表示该节点路径的字符串结束,可以用于识别字符串的遍历终点。其中,非叶子节点的权重可以为空值,例如可以为“0”。“公积金”的公共前缀词和对应的“贷款”、“提取”、“查询”等多个业务词构建的树形结构,可以为字典树中的其中一个子树。由此服务器能够有效地存储业务关键词对应的字符以及权重。
在一个实施例中,字典树的节点包括字符空间和权重空间,该方法还包括:将每个节点的字符存储至对应的字符空间,若字符串包括字符子集,将字符串的权重存储至字符串的最后一个字符的字符节点的权重空间;若字符串不包括字符子集,在字符串的节点末端配置叶子节点,对叶子节点配置结束字符,将结束字符存储至字符空间;获取叶子节点对应的业务关键词的权重,将权重存储至叶子节点的权重空间。
其中,服务器在构建字典树时,可以对字典树的每个节点配置字符空间和权重空间,字符空间用于存储每个节点的字符,权重空间用于存储节点对应字符串的权重。每个节点可以部署两部分存储空间,即字符空间和权重空间。字典树中的权重空间的存储方式可配置为增量存储。例如,字符空间可以字符类型,通常占2个字节的存储容量。权重空间可以为长整型(Long类型),通常占4个字节的存储容量。
字典树中包括根节点和多个子节点,根节点不包含字符,根节点包括权重。除根节点以外的每个节点均可以存储字符,还可以存储相应的权重。即根节点以外的每个节点包括字符空间和权重空间。每个节点的所有子节点包含的字符都不相同。其中,根节点的权重为空,或为初始值,例如根节点的权重可以为“0”。
服务器件构建字典树的过程中,利用多个业务关键词构建相应的公共前缀节点和子节点。服务器将每个节点的字符存储至对应的字符空间,业务关键词的权重的可以存储至子节点的权重空间中,也可以存储至叶子节点的权重空间中。对叶子节点配置结束字符,将结束字符存储至字符空间。
具体地,若当前配置的字符串的最后一个字符后面还包括字符子集时,将字符串的权重存储至字符串的最后一个字符的字符节点的权重空间中。若当前配置的字符串的最后一个字符后面不包括字符子集时,表示该字符串为完整的字符串,此时则在字符串的最后一个字符节点的末端配置叶子节点,对叶子节点配置结束字符,将结束字符存储至字符空间。服务器还获取叶子节点对应的业务关键词的权重,将权重存储至叶子节点的权重空间。从而能够有效地存储业务关键词对应的字符以及权重。
本实施例中的字典树比传统的字典树需要更多的存储空间,但同时存储了字符串和对应的权重,在字典树中查找的相匹配的字符串的同时,也获取了相应的权重,从而减少了额外计算权重的计算量和资源占用,有效提高了数据搜索的效率,由此能够快速有效地查找相匹配的搜索建议词。
在一个实施例中,如图5所示,获取子节点序列对应的字符串和权重的步骤,具体包括以下内容:
步骤502,根据搜索字符的字符序列在字典树中查找相应的字符节点,将字符节点确定为公共前缀节点,将公共前缀节点的最后一个字符节点确定为直接前缀节点,根据公共前缀节点和直接前缀节点确定目标搜索子树。
步骤504,根据直接前缀节点确定在目标搜索子树中的查找路径,根据查找路径遍历直接前缀节点对应的多个子节点。
步骤506,获取所遍历的多个子节点对应的字符串和权重,利用多个字符串和权重生成公共前缀节点对应的字符串集合。
其中,服务器可以将直接前缀节点的最后一个节点作为目标搜索子树的搜索根节点,查找路径可以为从搜索根节点到每个叶子节点的路径。
服务器接收终端输入的搜索字符后,根据搜索字符的字符序列在字典树中查找相应的字符,并匹配相应的字符节点。将字符节点确定为公共前缀节点,公共前缀节点可以为一个,也可以为多个。当搜索字符为一个字符时,在字典树中匹配该字符对应的字符节点,并将对应的字符节点确定为公共前缀节点和子树根节点,并将该公共前缀节点对应的多个子节点作为目标搜索子树。若搜索字符包括多个字符,服务器则首先在字典树中查找终端输入的第一个字符,并继续根据字符序列在字典树中查找终端输入的第二个字符,直到查找到搜索字符对应的所有字符节点,将搜索字符对应的多个字符节点确定为公共前缀节点,将公共前缀节点的最后一个字符节点确定为直接前缀节点,根据公共前缀节点和直接前缀节点确定目标搜索子树。服务器进而将公共前缀节点和直接前缀节点和对应的若干子节点作为目标搜索子树。
服务器确定搜索字符对应的公共前缀节点以及待搜索的目标搜索子树后,则在目标搜索子树中查找相应的子节点。具体地,服务器根据直接前缀节点确定出在目标搜索子树中的查找路径,根据查找路径分别查找对应的多个子节点。每个子节点包括相应的字符,叶子节点则包括该条查找路径对应的字符串的权重。服务器利用每条查找路径遍历的子节点的字符串生成字符串集合。字符串集合中还包括每个字符串的权重。目标搜索子树中的公共前缀节点则为字符串集合对应的公共前缀字符。
服务器进而可以利用公共前缀字符和字符串集合中的多个字符串分别生成多个搜索建议词,每个搜索建议词的权重则为相应字符串的权重。通过根据搜索字符在字典树中进行前缀查询,从而能够快速有效地在字典树中查找搜索字符对应的字符串,同时也能够快速有效地获取到字符串对应的权重。
在其中一个实施例中,若搜索字符在字典树中不存在对应的字符节点,表示字典树里没有该搜索词,服务器则不向终端返回搜索建议词。若根据搜索字符在字典树中查找到相应的字符节点,但该字符节点下不存在除叶子节点的子节点时,表示该搜索字符在字典树中不存在搜索建议词,此时服务器也不向终端返回搜索建议词。
在一个实施例中,获取所遍历的多个子节点对应的字符串和权重包括:根据查找路径在目标搜索子树中遍历直接前缀节点对应的子节点;获取当前字符节点的权重,当字符节点的权重为空时,遍历字符节点的下一节点;直到遍历至包括结束字符的叶子节点时,获取叶子节点的权重;根据查找路径确定叶子节点对应的字符串和字符串的权重。
其中,字典树中的每个节点存储了相应的字符和权重,字典树的叶子节点则存储了结束字符和该叶子节点相应路径的字符串的权重。
服务器接收终端输入的搜索字符后,根据搜索字符的字符序列在字典树中查找相应的字符,并匹配相应的字符节点,将对应的字符节点确定为公共前缀节点,将直接前缀节点确定为搜索根节点,搜索根节点可以为子树根节点。服务器并将该直接前缀节点对应的多个子节点作为目标搜索子树。服务器则根据查找路径在目标搜索子树中进行遍历。
具体地,服务器根据公共前缀节点和直接前缀节点确定出在目标搜索子树中的查找路径。其中,服务器可以将公共前缀节点的整体作为目标搜索子树的搜索根节点,也可以将直接前缀节点作为目标搜索子树的搜索根节点。服务器则根据查找路径从目标搜索子树的搜索根节点为起点分别查找对应的多个子节点。
字典树中的每个子节点包括相应的字符和权重,若子节点的字符不为预设的结束字符时,表示该节点还存在子节点且并非终端节点,该节点的权重则为空,例如还可以为表示空值的预设阈值。服务器在遍历直接前缀节点对应的子节点的过程中,获取所遍历的当前字符节点的权重。当该字符节点的权重为空时,表示该字符节点还包括对应的子节点,服务器则继续遍历该字符节点的下一个节点,直到遍历到存在结束字符的叶子节点,表示该条查找路径遍历完成。服务器则获取叶子节点中存储的权重,服务器进而能够有效地根据查找路径确定该条查找路径下叶子节点所对应的字符串以及字符串的权重。
服务器利用每条查找路径遍历的子节点的字符串生成字符串集合,因此,该字符串集合中包括了搜索字符对应的多个字符串,以及每个字符串的权重。由此服务器能够快速有效地在字典树中查找搜索字符对应的字符串,同时也能够快速有效地获取了字符串对应的权重。
在一个实施例中,根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序包括:利用搜索字符和字符串集合中的多个字符串分别生成多个搜索建议词;将字符串的权重确定为对应的搜索建议词的权重;根据权重对搜索建议词进行降序排序,根据排序结果和数量阈值提取多个搜索建议词;将提取的多个搜索建议词返回至终端,根据排序结果在终端的界面进行展示。
服务器根据搜索字符在字典树中查找到与搜索字符相匹配的字符串集合后,则可以利用搜索字符和字符串集合中的多个字符串分别生成多个搜索建议词。具体地,服务器可以将搜索字符作为公共前缀字符,利用公共前缀字符分别与字符串集合中的每个字符串进行组合,从而可以分别得到一个对应的搜索建议词。
例如,以搜索字符为“公积金”为例,服务器根据“公积金”在字典树中查找对应的字符节点,并将这三个字符节点作为公共前缀节点,在字典树中遍历查找该公共前缀节点所对应的若干子节点。参照图4,“公积金”对应的公共前缀节点可以包括“贷款”、“提取”、“查询”等多个子节点。服务器则获取所遍历的多个子节点对应的字符串和权重,并利用多个字符串和权重生成公共前缀节点对应的字符串集合。因此生成的字符串集合中则可以包括“贷款/24”、“提取/45”、“查询/21”等多个字符串和对应的权重。服务器进而利用搜索字符和字符串集合中的多个字符串分别生成多个搜索建议词,从而可以得到“公积金贷款(权重24)”、“公积金提取(权重45)”、“公积金查询(权重21)”的搜索建议词以及对应的权重。服务器根据权重进行降序排序,即可以按照权重从高到低排序。其中,若搜索建议词的数量超过预设数量阈值,则在排序后的多个搜索建议词中提取预设数量阈值的搜索建议词,并将提取的搜索建议词按照排序结果返回至终端,并在终端的搜索界面进行展示。参照图6所示,图6为用户通过终端输入“公积金”的搜索字符后,根据搜索字符返回相应的搜索建议词的推送结果的界面示意图。
在一个实施例中,如图7所示,该方法还包括更新字典树的步骤,该步骤具体包括以下内容:
步骤702,根据预设频率获取历史业务数据,历史业务数据包括当前搜索热度。
步骤704,对历史业务数据进行关键词提取,得到多个业务关键词和相应的当前搜索热度。
步骤706,根据业务关键词的当前搜索热度计算业务关键词的当前权重。
步骤708,利用业务关键词和对应的当前权重更新字典树。
其中,字典树中的每个节点的权重的存储方式为增量存储。由于初始构建的字典树中存储有多个字符以及多个字符串的权重,而在数据搜索系统的运行过程中,一些字符串的搜索热度可能会发生变化,起对应的权重也会随之变化。因此,服务器可以根据预设频率利用一段时间内的历史业务数据对字典树进行更新,以更新字典树中的相应的字符以及权重,以保证字典树中存储的业务关键词的权重的准确度。
具体地,服务器根据预设频率从本地数据库或第三方数据库获取若干历史业务数据。历史业务数据可以是过去一段时间内的业务数据、搜索数据以及话题数据等。历史业务数据中包括相应的业务关键词以及当前搜索热度。服务器则对历史业务数据进行关键词提取,得到多个业务关键词和相应的当前搜索热度,并根据当前搜索热度计算相应业务关键词的当前权重。
服务器则在字典树中查找该业务关键词对应的字符串以及字符串的权重,将字典树中的字符串的权重与业务关键词的当前权重进行比较,若当前权重与字典树中存储的权重不同,则将字典树中的该字符串的权重更新为当前权重,由此对字典树中相应业务关键词的权重进行更新。由此能有效地根据历史业务数据对字典树中的业务关键词以及权重进行动态更新,从而有效保证了字典树中存储的业务关键词以及对应权重的有效性和准确度。
在一个实施例中,该方法还包括:若业务关键词中包括更新业务关键词,提取更新业务关键词和对应的当前权重;根据更新业务关键词的前缀词确定对应的更新字符和字符序列;根据字符序列将更新字符和对应的当前权重更新字典树中。
服务器根据预设频率获取若干历史业务数据后,对历史业务数据进行关键词提取,得到多个业务关键词和相应的当前搜索热度,并根据当前搜索热度计算相应业务关键词的当前权重。服务器进一步将提取的业务关键词与数据库中已有的业务关键词进行比较。其中,数据库可以为本地数据库,也可以第三方数据库。若提取的业务关键词中包括数据库中没有的业务关键词时,则表示该业务关键词为新增的业务关键词,并将该业务关键词确定为更新业务关键词。
服务器则需要将更新业务关键词和对应的当前权重更新至字典树中。具体地,服务器识别字典树中是否存在更新业务关键词的公共前缀字符,若字典树中存在更新业务关键词的部分前缀字符,服务器则根据业务关键词的公共前缀字符确定对应的更新字符和字符序列,并将更新业务关键词拆分为公共前缀字符和更新字符。服务器则将更新字符按照字符序列在字典树中新增对应的更新字符节点,并在更新字符节点的末端添加相应的叶子节点,在叶子节点中存储预设的结束字符,并将该更新业务关键词的当前权重存储至叶子节点。
若字典树中不存更新业务关键词的公共前缀字符,服务器则将业务关键词的所有字符确定为更新字符,并根据业务关键词的字符序列在字典树中新增更新字符对应的更新字符节点,并将更新业务关键词的当前权重新增至对应的叶子节点中。由此能够有效地将更新业务关键词和对应的当前权重更新至字典树中。由此能有效地根据历史业务数据对字典树中的业务关键词以及权重进行动态更新,从而有效保证了字典树中存储的业务关键词以及对应权重的有效性和准确度。
图2、3、5、7为一个实施例中基于字典树的搜索处理方法的流程示意图。应该理解的是,虽然图2、3、5、7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3、5、7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种基于字典树的搜索处理装置800,该装置包括接收模块802、查找模块804、推送模块806和展示模块808,其中:
接收模块802,用于接收终端输入的搜索字符;
查找模块804,用于根据搜索字符的字符序列在字典树中查找相应的字符节点,遍历字符节点对应的子节点序列,从字典树中提取子节点序列对应的字符串,从字符串相应的节点中获取字符串对应的权重;
推送模块806,用于根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示;
展示模块808,用于获取终端针对目标搜索建议词触发的选择操作,在终端的搜索框中展示目标搜索建议词。
在一个实施例中,如图9所示,该装置还包括字典树构建模块801,用于获取多项样本数据,样本数据包括搜索热度;对样本数据进行关键词提取,得到多个业务关键词和相应的搜索热度;提取业务关键词的公共前缀词,根据公共前缀词生成包括多个关键词业务词的业务关键词集合;根据业务关键词的搜索热度计算业务关键词集合中每个业务关键词的权重;利用业务关键词集合和业务关键词的权重构建字典树。
在一个实施例中,字典树构建模块801还用于根据公共前缀词确定业务关键词相应的业务词,并确定业务关键词集合中业务关键词的字符序列;根据字符序列和前缀词构建字典树的公共前缀节点,根据字符序列和业务词的字符构建对应的子节点;将业务关键词的权重存储至业务词对应的字符串的节点中。
在一个实施例中,字典树的节点包括字符空间和权重空间,字典树构建模块801还用于将每个节点的字符存储至对应的字符空间;若字符串包括字符子集,将字符串的权重存储至字符串的最后一个字符的字符节点的权重空间;若字符串不包括字符子集,在字符串的节点末端配置叶子节点,对叶子节点配置结束字符,将结束字符存储至字符空间;获取叶子节点对应的业务关键词的权重,将权重存储至叶子节点的权重空间。
在一个实施例中,查找模块804还用于根据搜索字符的字符序列在字典树中查找相应的字符节点,将字符节点确定为公共前缀节点,将公共前缀节点的最后一个字符节点确定为直接前缀节点,根据公共前缀节点和直接前缀节点确定目标搜索子树;根据直接前缀节点确定在目标搜索子树中的查找路径,根据查找路径遍历直接前缀节点对应的多个子节点;获取所遍历的多个子节点对应的字符串和权重,利用多个字符串和权重生成公共前缀节点对应的字符串集合。
在一个实施例中,查找模块804还用于根据查找路径在目标搜索子树中遍历直接前缀节点对应的子节点;获取当前字符节点的权重,当字符节点的权重为空时,遍历字符节点的下一节点;直到遍历至包括结束字符的叶子节点时,获取叶子节点的权重;根据查找路径确定叶子节点对应的字符串和字符串的权重。
在一个实施例中,推送模块806还用于利用搜索字符和字符串集合中的多个字符串分别生成搜索建议词;将字符串的权重确定为对应的搜索关键词的权重;根据权重对搜索建议词进行降序排序,根据排序结果和数量阈值提取多个搜索建议词;将提取的多个搜索建议词返回至终端,根据排序结果在终端的界面进行展示。
在一个实施例中,如图10所示,该装置还包括字典树更新模块810,用于根据预设频率获取历史业务数据,历史业务数据包括当前搜索热度;对历史业务数据进行关键词提取,得到多个业务关键词和相应的当前搜索热度;根据业务关键词的当前搜索热度计算业务关键词的当前权重;利用业务关键词和对应的当前权重更新字典树。
在一个实施例中,字典树更新模块810还用于若业务关键词中包括更新业务关键词,提取更新业务关键词和对应的当前权重;根据更新业务关键词的前缀字符确定对应的更新字符和字符序列;根据字符序列将更新字符和对应的当前权重更新字典树中。
图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图11所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现基于字典树的搜索处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行基于字典树的搜索处理方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的基于字典树的搜索处理装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该基于字典树的搜索处理装置的各个程序模块,比如,图8所示的接收模块802、查找模块804、推送模块806和展示模块808。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的基于字典树的搜索处理方法中的步骤。
例如,图11所示的计算机设备可以通过如图8所示的基于字典树的搜索处理装置中的接收模块802执行步骤202。计算机设备可通过查找模块804执行步骤204。计算机设备可通过推送模块806执行步骤206。计算机设备可通过展示模块808执行步骤208。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于字典树的搜索处理方法的步骤。此处基于字典树的搜索处理方法的步骤可以是上述各个实施例的基于字典树的搜索处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于字典树的搜索处理方法的步骤。此处基于字典树的搜索处理方法的步骤可以是上述各个实施例的基于字典树的搜索处理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种基于字典树的搜索处理方法,包括:
接收终端输入的搜索字符;
根据所述搜索字符的字符序列在字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取所述字符串对应的权重;
根据所述搜索字符和所述字符串生成搜索建议词,根据所述权重对所述搜索建议词进行排序,将排序后的搜索建议词返回至所述终端进行展示;
获取所述终端针对目标搜索建议词触发的选择操作,在所述终端的搜索框中展示所述目标搜索建议词。
2.根据权利要求1所述的方法,其特征在于,所述接收终端输入的搜索字符之前,还包括:
获取多项样本数据,所述样本数据包括搜索热度;
对所述样本数据进行关键词提取,得到多个业务关键词和相应的搜索热度;
提取所述业务关键词的公共前缀词,根据所述公共前缀词生成包括多个关键词业务词的业务关键词集合;
根据所述业务关键词的搜索热度计算所述业务关键词集合中每个业务关键词的权重;
利用所述业务关键词集合和所述业务关键词的权重构建字典树。
3.根据权利要求2所述的方法,其特征在于,所述利用所述业务关键词集合和所述业务关键词的权重构建字典树包括:
根据所述公共前缀词确定业务关键词相应的业务词,并确定所述业务关键词集合中业务关键词的字符序列;
根据所述字符序列和所述公共前缀词构建字典树的公共前缀节点,根据所述字符序列和所述业务词的字符构建对应的子节点;
将所述业务关键词的权重存储至所述业务词对应的字符串的节点中。
4.根据权利要求3所述的方法,其特征在于,所述字典树的节点包括字符空间和权重空间,所述方法还包括:
将每个节点的字符存储至对应的字符空间;
若所述字符串包括字符子集,将所述字符串的权重存储至所述字符串的最后一个字符的字符节点的权重空间;
若所述字符串不包括字符子集,在所述字符串的节点末端配置叶子节点,对所述叶子节点配置结束字符,将所述结束字符存储至所述字符空间;
获取所述叶子节点对应的业务关键词的权重,将所述权重存储至所述叶子节点的权重空间。
5.根据权利要求1所述的方法,其特征在于,所述获取所述子节点序列对应的字符串和权重包括:
根据所述搜索字符的字符序列在所述字典树中查找相应的字符节点,将所述字符节点确定为公共前缀节点,将所述公共前缀节点的最后一个字符节点确定为直接前缀节点,根据所述公共前缀节点和所述直接前缀节点确定目标搜索子树;
根据所述直接前缀节点确定在所述目标搜索子树中的查找路径,根据所述查找路径遍历所述直接前缀节点对应的多个子节点;
获取所遍历的多个子节点对应的字符串和权重,利用所述多个字符串和权重生成所述公共前缀节点对应的字符串集合。
6.根据权利要求5所述的方法,其特征在于,所述获取所遍历的多个子节点对应的字符串和权重包括:
根据所述查找路径在所述目标搜索子树中遍历所述直接前缀节点对应的子节点;
获取当前字符节点的权重,当所述字符节点的权重为空时,遍历所述字符节点的下一节点;
直到遍历至包括结束字符的叶子节点时,获取所述叶子节点的权重;
根据所述查找路径确定所述叶子节点对应的字符串和所述字符串的权重。
7.根据权利要求5所述的方法,其特征在于,所述根据所述搜索字符和所述字符串生成搜索建议词,根据所述权重对所述搜索建议词进行排序包括:
利用所述搜索字符和所述字符串集合中的多个字符串分别生成搜索建议词;
将所述字符串的权重确定为对应的搜索关键词的权重;
根据所述权重对所述搜索建议词进行降序排序,根据排序结果和数量阈值提取多个搜索建议词;
将提取的多个搜索建议词返回至所述终端,根据所述排序结果在所述终端的界面进行展示。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
根据预设频率获取历史业务数据,所述历史业务数据包括当前搜索热度;
对所述历史业务数据进行关键词提取,得到多个业务关键词和相应的当前搜索热度;
根据所述业务关键词的当前搜索热度计算所述业务关键词的当前权重;
利用所述业务关键词和对应的当前权重更新所述字典树。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若所述业务关键词中包括更新业务关键词,提取所述更新业务关键词和对应的当前权重;
根据所述更新业务关键词的前缀字符确定对应的更新字符和字符序列;
根据所述字符序列将所述更新字符和对应的当前权重更新所述字典树中。
10.一种基于字典树的搜索处理装置,所述装置包括:
接收模块,用于接收终端输入的搜索字符;
查找模块,用于根据所述搜索字符的字符序列在字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取所述字符串对应的权重;
推送模块,用于根据所述搜索字符和所述字符串生成搜索建议词,根据所述权重对所述搜索建议词进行排序,将排序后的搜索建议词返回至所述终端进行展示;
展示模块,用于获取所述终端针对目标搜索建议词触发的选择操作,在所述终端的搜索框中展示所述目标搜索建议词。
11.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
CN201911102346.1A 2019-11-12 2019-11-12 基于字典树的搜索处理方法、装置、设备和存储介质 Pending CN110851722A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911102346.1A CN110851722A (zh) 2019-11-12 2019-11-12 基于字典树的搜索处理方法、装置、设备和存储介质
CN202010479380.7A CN111460311A (zh) 2019-11-12 2020-05-29 基于字典树的搜索处理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911102346.1A CN110851722A (zh) 2019-11-12 2019-11-12 基于字典树的搜索处理方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN110851722A true CN110851722A (zh) 2020-02-28

Family

ID=69601479

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201911102346.1A Pending CN110851722A (zh) 2019-11-12 2019-11-12 基于字典树的搜索处理方法、装置、设备和存储介质
CN202010479380.7A Pending CN111460311A (zh) 2019-11-12 2020-05-29 基于字典树的搜索处理方法、装置、设备和存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010479380.7A Pending CN111460311A (zh) 2019-11-12 2020-05-29 基于字典树的搜索处理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (2) CN110851722A (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339382A (zh) * 2020-03-11 2020-06-26 腾讯科技(深圳)有限公司 字符串数据检索方法、装置、计算机设备及存储介质
CN111737986A (zh) * 2020-05-15 2020-10-02 深圳市世强元件网络有限公司 一种基于多叉树的搜索词推荐方法及系统
CN111813889A (zh) * 2020-06-24 2020-10-23 北京安博盛赢教育科技有限责任公司 一种提问信息的排序方法、装置、介质和电子设备
CN111931026A (zh) * 2020-08-10 2020-11-13 湖南快乐阳光互动娱乐传媒有限公司 一种基于词性扩展的搜索优化方法及系统
CN112069286A (zh) * 2020-08-28 2020-12-11 喜大(上海)网络科技有限公司 字典树参数更新方法、装置、设备及存储介质
CN112364126A (zh) * 2020-10-21 2021-02-12 广州市百果园网络科技有限公司 一种关键词的提示方法、装置、计算机设备和存储介质
CN112800316A (zh) * 2021-02-04 2021-05-14 北京易车互联信息技术有限公司 一种基于双数组字典树的搜索关键词提取系统
CN112905871A (zh) * 2021-03-29 2021-06-04 中国平安人寿保险股份有限公司 热点关键词推荐方法、装置、终端及存储介质
CN113312523A (zh) * 2021-07-30 2021-08-27 北京达佳互联信息技术有限公司 字典生成、搜索关键字推荐方法、装置和服务器
CN113342848A (zh) * 2021-05-25 2021-09-03 中国平安人寿保险股份有限公司 信息搜索方法、装置、终端设备及计算机可读存储介质
CN113555069A (zh) * 2021-07-22 2021-10-26 杭州叙简科技股份有限公司 一种基于ac自动机的化学品名称检索和抽取方法及装置
CN113625884A (zh) * 2020-05-07 2021-11-09 顺丰科技有限公司 一种输入词推荐方法、装置、服务器及存储介质
WO2022012205A1 (zh) * 2020-07-15 2022-01-20 华为技术有限公司 词补全方法和装置
CN114861216A (zh) * 2022-03-18 2022-08-05 浪潮卓数大数据产业发展有限公司 一种基于ac自动机的sql注入检测方法、设备、存储介质
CN116501781A (zh) * 2023-06-28 2023-07-28 中博信息技术研究院有限公司 一种增强前缀树的数据快速统计方法
CN117272938A (zh) * 2023-11-22 2023-12-22 神思电子技术股份有限公司 一种用于文本生成的动态限定域解码方法、设备及介质
US11947608B2 (en) 2020-05-15 2024-04-02 Shenzhen Sekorm Component Network Co., Ltd Search term recommendation method and system based on multi-branch tree

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114078283B (zh) * 2020-08-12 2024-05-28 腾讯科技(深圳)有限公司 数据查询方法、装置、设备及计算机可读存储介质
CN113094470B (zh) * 2021-04-08 2022-05-24 蔡堃 文本搜索方法和系统
CN113609352B (zh) * 2021-08-03 2023-08-04 北京恒安嘉新安全技术有限公司 字符串检索方法、装置、计算机设备及存储介质
CN113627178A (zh) * 2021-08-27 2021-11-09 四川长虹电器股份有限公司 基于字典树分类的可配置化领域识别方法
CN115878924B (zh) * 2021-09-27 2024-03-12 小沃科技有限公司 一种基于双字典树数据处理方法、装置、介质及电子设备

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339382B (zh) * 2020-03-11 2023-09-22 腾讯科技(深圳)有限公司 字符串数据检索方法、装置、计算机设备及存储介质
CN111339382A (zh) * 2020-03-11 2020-06-26 腾讯科技(深圳)有限公司 字符串数据检索方法、装置、计算机设备及存储介质
CN113625884A (zh) * 2020-05-07 2021-11-09 顺丰科技有限公司 一种输入词推荐方法、装置、服务器及存储介质
US11947608B2 (en) 2020-05-15 2024-04-02 Shenzhen Sekorm Component Network Co., Ltd Search term recommendation method and system based on multi-branch tree
CN111737986A (zh) * 2020-05-15 2020-10-02 深圳市世强元件网络有限公司 一种基于多叉树的搜索词推荐方法及系统
CN111813889A (zh) * 2020-06-24 2020-10-23 北京安博盛赢教育科技有限责任公司 一种提问信息的排序方法、装置、介质和电子设备
WO2022012205A1 (zh) * 2020-07-15 2022-01-20 华为技术有限公司 词补全方法和装置
CN111931026A (zh) * 2020-08-10 2020-11-13 湖南快乐阳光互动娱乐传媒有限公司 一种基于词性扩展的搜索优化方法及系统
CN112069286A (zh) * 2020-08-28 2020-12-11 喜大(上海)网络科技有限公司 字典树参数更新方法、装置、设备及存储介质
CN112069286B (zh) * 2020-08-28 2024-01-02 喜大(上海)网络科技有限公司 字典树参数更新方法、装置、设备及存储介质
CN112364126A (zh) * 2020-10-21 2021-02-12 广州市百果园网络科技有限公司 一种关键词的提示方法、装置、计算机设备和存储介质
CN112800316A (zh) * 2021-02-04 2021-05-14 北京易车互联信息技术有限公司 一种基于双数组字典树的搜索关键词提取系统
CN112905871A (zh) * 2021-03-29 2021-06-04 中国平安人寿保险股份有限公司 热点关键词推荐方法、装置、终端及存储介质
CN113342848A (zh) * 2021-05-25 2021-09-03 中国平安人寿保险股份有限公司 信息搜索方法、装置、终端设备及计算机可读存储介质
CN113342848B (zh) * 2021-05-25 2024-04-02 中国平安人寿保险股份有限公司 信息搜索方法、装置、终端设备及计算机可读存储介质
CN113555069A (zh) * 2021-07-22 2021-10-26 杭州叙简科技股份有限公司 一种基于ac自动机的化学品名称检索和抽取方法及装置
CN113312523B (zh) * 2021-07-30 2021-12-14 北京达佳互联信息技术有限公司 字典生成、搜索关键字推荐方法、装置和服务器
CN113312523A (zh) * 2021-07-30 2021-08-27 北京达佳互联信息技术有限公司 字典生成、搜索关键字推荐方法、装置和服务器
CN114861216A (zh) * 2022-03-18 2022-08-05 浪潮卓数大数据产业发展有限公司 一种基于ac自动机的sql注入检测方法、设备、存储介质
CN114861216B (zh) * 2022-03-18 2024-05-17 浪潮卓数大数据产业发展有限公司 一种基于ac自动机的sql注入检测方法、设备、存储介质
CN116501781B (zh) * 2023-06-28 2023-09-12 中博信息技术研究院有限公司 一种增强前缀树的数据快速统计方法
CN116501781A (zh) * 2023-06-28 2023-07-28 中博信息技术研究院有限公司 一种增强前缀树的数据快速统计方法
CN117272938A (zh) * 2023-11-22 2023-12-22 神思电子技术股份有限公司 一种用于文本生成的动态限定域解码方法、设备及介质
CN117272938B (zh) * 2023-11-22 2024-02-20 神思电子技术股份有限公司 一种用于文本生成的动态限定域解码方法、设备及介质

Also Published As

Publication number Publication date
CN111460311A (zh) 2020-07-28

Similar Documents

Publication Publication Date Title
CN110851722A (zh) 基于字典树的搜索处理方法、装置、设备和存储介质
US9104979B2 (en) Entity recognition using probabilities for out-of-collection data
Belazzougui et al. Alphabet-independent compressed text indexing
West et al. Knowledge base completion via search-based question answering
US8533203B2 (en) Identifying synonyms of entities using a document collection
US20100106713A1 (en) Method for performing efficient similarity search
US8171029B2 (en) Automatic generation of ontologies using word affinities
US7756859B2 (en) Multi-segment string search
CN103198079B (zh) 相关搜索的实现方法和装置
KR101266358B1 (ko) 다중 길이 시그니처 파일 기반 분산 색인 시스템 및 방법
CN110795526B (zh) 一种用于检索系统的数学公式索引创建方法与系统
Navarro Document listing on repetitive collections with guaranteed performance
CN113254630A (zh) 一种面向全球综合观测成果的领域知识图谱推荐方法
Jansson et al. Linked dynamic tries with applications to LZ-compression in sublinear time and space
Jiang et al. Incremental evaluation of top-k combinatorial metric skyline query
Sharaff et al. Analysing fuzzy based approach for extractive text summarization
Hui et al. Incremental mining of temporal patterns in interval-based database
CN109271491B (zh) 基于非结构化文本信息的云服务推荐方法
US8204887B2 (en) System and method for subsequence matching
US20130318092A1 (en) Method and System for Efficient Large-Scale Social Search
CN117150107A (zh) 基于知识图谱的推荐方法、装置、计算机设备及存储介质
KR20110023304A (ko) 개념 네트워크 기반 사용자 프로파일 구성 방법 및 시스템과 이를 이용한 개인화 질의 확장 시스템
US10394870B2 (en) Search method
CN115982390A (zh) 一种产业链构建和迭代扩充开发方法
CN106294784B (zh) 资源搜索方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200228

WD01 Invention patent application deemed withdrawn after publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021052

Country of ref document: HK