CN111460311A - 基于字典树的搜索处理方法、装置、设备和存储介质 - Google Patents
基于字典树的搜索处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111460311A CN111460311A CN202010479380.7A CN202010479380A CN111460311A CN 111460311 A CN111460311 A CN 111460311A CN 202010479380 A CN202010479380 A CN 202010479380A CN 111460311 A CN111460311 A CN 111460311A
- Authority
- CN
- China
- Prior art keywords
- character
- search
- node
- weight
- nodes
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy 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
本申请要求于2019年11月12日提交中国专利局,申请号为:2019111023461申请名称为“基于字典树的搜索处理方法、装置、设备和存储介质”的中国专利申请的本国优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于字典树的搜索处理方法、装置、设备和存储介质。
背景技术
随着互联网技术的迅速发展,利用输入框对输入的内容进行搜索的需求日益增长,出现了一些搜索引擎以及输入法等,可以根据用户已输入的字符串利用字典树进行模糊匹配,并将匹配结果推送给用户。然而,目前的搜索结果推荐的方式,在搜索处理时还需要对大量的数据进行分析,并将搜索结果按照搜索频次等计算概率排布,搜索词推荐的过程中计算资源占用较大,搜索数据的读取效率较低。
发明内容
有必要针对数据的存储效率和读取较低的技术问题,提供一种基于字典树的搜索处理方法、装置、设备和存储介质。
一种基于字典树的搜索处理方法,所述方法包括:
获取搜索字符;
根据所述搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取各字符串对应的权重;
根据所述搜索字符和各字符串生成搜索建议词,将各字符串对应的权重确定为相应的搜索建议词的权重;
根据所述权重对各搜索建议词进行排序,将排序后的搜索建议词通过终端的搜索页面进行展示。
一种基于字典树的搜索处理装置,所述装置包括:
数据获取模块,用于获取搜索字符;
数据搜索模块,用于根据所述搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取各字符串对应的权重;
数据处理模块,用于根据所述搜索字符和各字符串生成搜索建议词,将各字符串对应的权重确定为相应的搜索建议词的权重;根据所述权重对各搜索建议词进行排序,将排序后的搜索建议词通过终端的搜索页面进行展示。
在其中一个实施例中,所述装置还包括字典树构建模块,用于获取业务数据,所述业务数据包括业务关键词以及对应的搜索热度;基于各业务关键词对应的搜索热度确定各业务关键词的权重;对各业务关键词进行分词处理,获得各业务关键词的公共前缀词;基于所述公共前缀词,根据各业务关键词生成包括所述公共前缀词的业务关键词集合;基于各业务关键词集合中的业务关键词以及对应的权重构建字典树。
在其中一个实施例中,所述字典树构建模块还用于根据所述公共前缀词确定各业务关键词相应的字符串,并确定所述业务关键词集合中各业务关键词的字符序列;基于所述公共前缀词和各业务关键词的字符序列构建字典树的至少一个公共前缀节点,根据各业务关键词的字符序列以及相应字符串的字符构建相应的子节点;将各业务关键词的权重存储至相应字符串对应的字符节点中。
在其中一个实施例中,所述字典树的节点包括字符空间和权重空间,所述字典树构建模块还用于将各字符串对应的字符存储至相应节点的字符空间;若所述字符串包括字符子集,将各业务关键词对应的权重存储至所述字符串的最后一个字符节点的权重空间;若所述字符串不包括字符子集,在所述字符串的节点末端配置叶子节点,对所述叶子节点配置结束字符,将所述结束字符存储至所述字符空间,并将所述字符串对应的权重存储至所述叶子节点的权重空间。
在其中一个实施例中,所述字典树构建模块还用于获取各业务关键词中的首字符,获取各首字符对应的散列值;基于各首字符的散列值,确定各业务关键词对应的子树集群标识;将所述各业务关键词以及对应的权重分发至各子树集群标识对应的子树集群服务器,通过各子树集群服务器基于接收的各业务关键词以及对应的权重构建字典树。
在其中一个实施例中,所述字典树构建模块还用于基于所述散列值和预设算法确定所述各业务关键词对应的目标参数值;基于所述目标参数值,确定所述各业务关键词对应的存储位置;根据所述存储位置对各业务关键词分配相应的子树集群标识。
在其中一个实施例中,所述数据搜索模块还用于根据所述搜索字符的字符序列在所述字典树中查找相应的字符节点,将所述字符节点确定为公共前缀节点,将所述公共前缀节点的最后一个字符节点确定为直接前缀节点,根据所述公共前缀节点和所述直接前缀节点确定目标搜索子树;根据所述直接前缀节点确定在所述目标搜索子树中的查找路径,根据所述查找路径遍历所述直接前缀节点对应的至少一个子节点;获取所遍历的各子节点对应的字符串和权重,基于各字符串和相应的权重生成所述公共前缀节点对应的字符串集合。
在其中一个实施例中,所述数据搜索模块还用于根据所述查找路径在所述目标搜索子树中遍历与所述直接前缀节点对应的子节点;获取当前字符节点的权重,当所述当前字符节点的权重为空时,遍历所述当前字符节点的下一节点;直到遍历至包括结束字符的叶子节点时,获取所述叶子节点的权重;根据所述查找路径确定所述叶子节点对应的字符串和所述字符串的权重。
在其中一个实施例中,所述数据搜索模块还用于获取所述搜索字符中的首字符,获取所述首字符对应的散列值;基于所述首字符的散列值,确定所述搜索字符对应的子树集群标识;将所述搜索字符转发至所述子树集群标识对应的目标子树集群服务器,通过所述目标子树集群服务器基于所述搜索字符,从预构建的字典树中获取相应的搜索建议词和对应的权重。
在其中一个实施例中,所述数据处理模块还用于基于各字符串的权重分别确定与各字符串对应的搜索关键词的权重;基于所述权重对各搜索建议词进行降序排序,基于排序结果和数量阈值获取搜索建议词;将获取的搜索建议词返回至所述终端,并按照所述排序结果通过所述终端的搜索页面对所述搜索建议词进行展示。
在其中一个实施例中,所述装置还包括字典树更新模块,用于根据预设频率获取历史业务数据,所述历史业务数据包括业务关键词和对应的当前搜索热度;根据各业务关键词的当前搜索热度确定各业务关键词的当前权重;基于各业务关键词以及对应的当前权重更新所述字典树。
在其中一个实施例中,所述字典树更新模块还用于若所述业务关键词中包括更新业务关键词,提取所述更新业务关键词和对应的当前权重;根据所述更新业务关键词的前缀字符确定对应的更新字符和字符序列;基于所述字符序列将所述更新字符和对应的当前权重更新所述字典树中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取搜索字符;
根据所述搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取各字符串对应的权重;
根据所述搜索字符和各字符串生成搜索建议词,将各字符串对应的权重确定为相应的搜索建议词的权重;
根据所述权重对各搜索建议词进行排序,将排序后的搜索建议词通过终端的搜索页面进行展示。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取搜索字符;
根据所述搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取各字符串对应的权重;
根据所述搜索字符和各字符串生成搜索建议词,将各字符串对应的权重确定为相应的搜索建议词的权重;
根据所述权重对各搜索建议词进行排序,将排序后的搜索建议词通过终端的搜索页面进行展示。
上述基于字典树的搜索处理方法、装置、设备和存储介质,获取搜索字符后,根据搜索字符在字典树中查找相应的字符节点,根据字符节点在字典树中进行遍历,由此获取子节点序列对应的字符串和权重。由于字典树中存储了多个业务关键词的字符串和对应的权重,因此在字典树中匹配时,能够快速有效地获取与搜索词相匹配字符串以及对应的权重。进而根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示。通过在字典树中分别配置字符和权重的存储空间,从而能够快速有效地利用字典树匹配搜索词对应的搜索建议词,同时也能够获取搜索建议词对应的权重,无需额外计算搜索建议词的权重再进行排序,有效提高了业务数据的读取效率和搜索处理效率。
附图说明
图1为一个实施例中基于字典树的搜索处理方法的应用环境图;
图2为一个实施例中基于字典树的搜索处理方法的流程示意图;
图3为一个实施例中构建字典树的步骤的流程示意图;
图4为一个实施例中字典树的局部结构示意图;
图5为一个具体的实施例中构建字典树的步骤的流程示意图;
图6为另一个实施例中构建字典树的步骤的流程示意图;
图7为一个实施例中对搜索字符进行搜索处理的示意图;
图8为一个实施例中搜索建议词的推送结果的界面示意图;
图9为一个具体的实施例中基于字典树的搜索处理方法的流程示意图;
图10为一个实施例中基于字典树的搜索处理装置的结构框图;
图11为另一个实施例中基于字典树的搜索处理装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本申请实施例提供的方案涉及人工智能的云计算、分布式存储、大数据处理技术等技术,通过对大量搜索数据进行处理,能够有效实现对搜索词进行智能推荐。
本申请提供的基于字典树的搜索处理方法,可应用于计算机设备中。计算机设备可以为终端或服务器。可以理解的是,本申请提供的分享内容处理方法可以应用于终端,也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。
在其中一个实施例中,计算机设备可以为服务器。本申请提供的基于字典树的搜索处理方法,可以应用于如图1所示的应用环境中,该应用环境包括终端和服务器的系统。其中,终端102通过网络与服务器104进行通信。服务器104获取通过终端102输入搜索字符,服务器104根据搜索字符在预构建的字典树中查找相应的字符节点,根据字符节点在字典树中进行遍历,由此获取子节点序列对应的字符串和权重。快速有效地获取与搜索词相匹配字符串以及对应的权重。服务器104进而根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端102进行展示。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于字典树的搜索处理方法,以该应用于计算机设备来举例说明,该计算机设备具体可以是终端或者服务器。
本实施例中,包括以下步骤:
S202,获取搜索字符。
其中,搜索字符表示用户在终端的输入框中输入的待搜索的词汇,例如,搜索字符可以是用户待搜索的完整的搜索词,也可以是不完整的部分搜索词。搜索字符可以包括字母、汉字、数字、运算符号、标点符号和其他符号等。
终端中可以部署有搜索引擎系统,终端的搜索页面中包括搜索框。搜索框是指数据搜索系统中的交互控件,用于根据在搜索框中输入的搜索字符提取海量信息中相应的准确内容。其中,搜索框可以为输入框,用于获取以及存储用户通过键盘或鼠标输入的文本信息等内容。用户可以通过终端上的搜索框输入待搜索的搜索字符。
具体地,当用户在终端的搜索框中输入待搜索的内容时,计算机设备可以通过数据搜索系统实时获取用户在终端的搜索框中输入的搜索字符。例如,用户可以在终端的搜索框中输入“公积金”,“公”“积”“金”则为终端输入的搜索字符。
S204,根据搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历字符节点对应的子节点序列,从字典树中提取子节点序列对应的字符串,从字符串相应的节点中获取各字符串对应的权重。
其中,字典树又称为单词查找树、前缀树或者键树,是一种树形结构,为一种哈希树的变种。树形结构指的是数据元素之间存在着一对多的树形关系的数据结构,是一类重要的非线性数据结构,树形结构可表示层次关系。字典树不仅可以用来储存字母,也可以储存数字等其它数据。一颗树可以包括根、子树和叶,根相当于树形结构中的树根节点,子树相当于树形结构中的多个子节点,叶相当于树形结构中的叶子节点,每个子树还可以有自己的子树。在树形结构中,树根节点没有前驱节点,其余每个节点有且只有一个前驱节点。叶子节点没有后续节点,其余每个节点的后续节点数可以是一个也可以是多个。其中,多个是指至少两个。
字典树中包括公共前缀,公共前缀可以表示多个字符串包括的共同的前缀字符,公共前缀可以为一个字符,也可以为多个连续的字符。利用字典树中字符串的公共前缀进行查询可以减少查询时间,并减少字符串间的比较,从而能够提高查询效率。
传统的字典树中,根节点不包含字符,除根节点外每一个节点都只包含一个字符。从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。因此传统的搜索处理方式中,根据搜索字符在字典树中仅可以匹配出相应的多个搜索建议词,还需要进一步去计算或者另外获取搜索建议词的权重或搜索热度等,再根据权重或搜索热度将多个搜索建议词进行排序。
字典树中包括根节点和多个子节点,根节点不包含字符,根节点可以包括权重。除根节点以外的每个节点均可以存储字符,还可以存储相应的权重。即根节点以外的每个节点包括字符空间和权重空间,字符空间用于存储每个节点的字符,权重空间用于存储节点对应字符串的权重。每个节点的所有子节点包含的字符都不相同。其中,根节点的权重为空,或为初始值,例如根节点的权重可以为“0”。
字典树可以是预先利用大量样本数据进行分析,得到多个业务关键词,并根据相应的搜索热度计算出每个业务关键词的权重。进而利用分析出的多个业务关键词以及对应的权重构建字典树。因此,计算机设备预先构建的字典树中包括多个业务关键词相应的字符和权重。
其中,字符序列表示由若干字符行程的序列。终端输入的搜索字符包括输入顺序,字符序列可以为根据搜索字符的输入顺序形成的对应的字符序列。节点序列可以表示从任一节点出发到根节点的路径上所经过的节点的序列。子节点序列可以为从当前节点遍历相应的子节点的路径上所经过的节点的序列。
具体地,计算机设备接收终端输入的搜索字符后,则根据搜索字符在字典树中查找相应的字符节点。若该字符节点包括多个子节点时,搜索字符对应的字符节点可以为公共前缀节点,其中,可以将搜索字符对应的字符节点的最后一个字符节点确定为直接前缀节点。直接前缀节点可以为树形结构中的前驱节点。公共前缀节点可以包括多个字符节点,也可以仅为一个字符节点。直接前缀节点仅为一个节点。计算机设备进而根据字符节点遍历直接前缀节点对应的子节点序列,从字典树中提取子节点序列对应的字符串,并从字符串相应的节点中获取字符串对应的权重和权重,从而能够快速地在字典树中获取搜索字符所对应的字符串和权重。
举例说明,若终端输入的搜索字符为“公积金”,搜索字符的字符序列则可以为:“公”->“积”->“金”。计算机设备进而在字典树中查找该字符序列对应的字符节点,并将“公”“积”“金”对应的字符节点作为公共前缀节点,将“金”确定为当前的直接前缀节点。若搜索字符为“公”时,则“公”为公共前缀节点,同时也为直接前缀节点。该节点对应的子节点则可以包括“积”、“平”、“共”等多个子节点。
计算机设备在字典树中遍历该直接前缀节点对应的各个子节点序列,并获取各子节点序列对应的字符串和权重。其中,字符串是将字节序列的各子节点对应的字符按字符序列的顺序串接起来,字符串可以包括多个字符,也可以仅为一个字符。例如“公积金”的公共前缀节点下可以包括“贷款”、“提取”、“查询”等多个字符串,每个字符串存储有相应的权重。
S206,根据搜索字符和各字符串生成搜索建议词,将各字符串对应的权重确定为相应的搜索建议词的权重。
其中,搜索建议词表示在以后搜索的过程中根据用户输入的搜索字符向用户推送与该搜索字符相匹配的推荐信息。
计算机设备在字典树中匹配到搜索字符所对应的多个字符串后,利用搜索字符对应的公共前缀字符和各字符串分别生成多个搜索建议词,字典树中匹配得到的字符串的权重则为对应的搜索建议词的权重。例如,以搜索字符为“公积金”为例,搜索字符对应的公共前缀字符即为“公积金”,对应的个字符串可以包括“贷款”、“提取”、“查询”。根据搜索字符和各字符串生成的搜索建议词则包括“公积金贷款”、“公积金提取”和“公积金查询”,并各字符串的权重确定为相应的搜索建议词的权重,由此能够快速有效地获取搜索字符对应的搜索建议词以及相应的权重。
S208,根据权重对各搜索建议词进行排序,将排序后的搜索建议词通过终端的搜索页面进行展示。
计算机设备获取搜索字符对应的搜索建议词以及相应的权重后,根据每个搜索建议词的权重对多个搜索建议词进行排序,其中,排序方式可以为根据权重对多个搜索建议词降序排序,从而得到排序后的搜索建议词。计算机设备则将排序后的多个搜索建议词返回给终端,并在终端的屏幕上按照排序结果进行展示。
在其中一个实施例中,计算机设备根据权重对多个搜索建议词降序排序后,还可以提取预设数量的搜索建议词,并将提取的多个搜索建议词返回给终端,并按照排序结果进行展示。
将获取的排序后的搜索建议词返回至终端进行展示后,用户可以对展示的多个搜索建议词进行选择。计算机设备则获取用户通过终端针对所选的目标搜索建议词触发的选择操作,并将目标搜索建议词输入至搜索框中,并在终端的搜索框中展示目标搜索建议词。计算机设备则可以进一步根据目标搜索建议词进行搜索相关的信息。
例如,计算机设备根据终端输入的搜索字符“公积金”,可以在字典树中匹配到多个子节点序列对应的字符串,如可以包括“贷款”、“提取”、“查询”等多个字符串以及对应的权重。计算机设备则根据搜索字符和字符串生成“公积金贷款”、“公积金提取”、“公积金查询”对应的多个搜索建议词以及权重。计算机设备则根据权重排序后将多个搜索建议词推送至终端并按照权重排序进行展示,以提供给用户进行选择。用户选择目标搜索建议词后,计算机设备则将目标搜索建议词在搜索框中进行展示,并根据目标搜索建议词搜索相应的数据资源。
传统的字典树中,根节点不包含字符,除根节点外每一个节点都只包含一个字符。从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。因此传统的搜索处理方式中,计算机设备根据搜索字符在字典树中仅可以匹配出相应的多个搜索建议词,还需要进一步去计算或者另外获取搜索建议词的权重或搜索热度等,再根据权重或搜索热度将多个搜索建议词进行排序并返回给终端。
上述基于字典树的搜索处理方法,获取搜索字符后,根据搜索字符在预构建的字典树中查找相应的字符节点,根据字符节点在字典树中进行遍历,由此获取子节点序列对应的字符串和权重。由于字典树中存储了多个业务关键词的字符串和对应的权重,因此在字典树中匹配时,能够直接从字典树中快速有效地获取与搜索词相匹配字符串以及对应的权重。进而根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示。通过在字典树中分别配置字符和权重的存储空间,从而能够快速有效地利用字典树匹配搜索词对应的搜索建议词,同时也能够获取搜索建议词对应的权重,无需额外计算搜索建议词的权重再进行排序,有效提高了搜索数据的读取效率和搜索处理效率。
在一个实施例中,如图3所示,在获取搜索字符之前,还包括构建字典树的步骤,该步骤具体包括以下内容:
S302,获取业务数据,业务数据包括业务关键词以及对应的搜索热度。
S304,基于各业务关键词对应的搜索热度确定各业务关键词的权重。
S306,对各业务关键词进行分词处理,获得各业务关键词的公共前缀词。
S308,基于公共前缀词,根据各业务关键词生成包括公共前缀词的业务关键词集合。
S310,基于各业务关键词集合中的业务关键词以及对应的权重构建字典树。
其中,业务数据可以是历史搜索数据以及话题数据等。业务数据可以是本地数据库中的数据,也可以是计算机设备从若干第三方数据库中获取的样本数据。业务数据中包括多个业务关键词以及对应的搜索热度。搜索热度可以表示包含业务关键词的样本数据在一定时间段内的搜索频次。权重是指某一因素或指标相对于某一事物的重要程度,可以表示业务关键词被搜索的频率程度。例如,业务关键词的搜索热度越高,其对应的权重则越大。
计算机设备获取搜索字符之前,需要预先利用大量的样本数据构建字典树。具体地,计算机设备可以预先部署字典树的树形结构,其中,计算机设备首先创建字典树的根节点,树根节点没有前驱节点,其余每个节点有且只有一个前驱节点。对字典树中的每个节点分配字符空间和权重空间,字符空间用于存储每个节点的字符,权重空间用于存储节点对应字符串的权重。每个节点的所有子节点包含的字符都不相同。其中,将字典树的根节点的字符配置为空,根节点的权重为空,或为初始值,例如根节点的权重可以为“0”。
计算机设备进而对大量的业务数据进行分析,提取出业务数据中的多个业务关键词,并获取各业务关键词的搜索热度。在另一个实施例中,业务数据包括对应的搜索热度,业务数据中可以包括多个业务关键词。通过对业务数据的搜索热度进行分析,可以得到业务数据中各个业务关键词的搜索热度。
其中,多个业务关键词可能包括相同的公共前缀词,业务关键词则包括公共前缀词和相应的业务词,即业务关键词包括相应的公共前缀词和相应的字符串。公共前缀词可以包括多个字符,也可以仅为一个字符。计算机设备可以将包括相同的公共前缀词的多个业务关键词生成业务关键词集合。业务关键词集合中还可以包括每个业务关键词的权重。
在构建字典树的过程中,在字典树结构中生成并插入字符串对应的节点。计算机设备可以首先将待插入的字符串转换为字符数组,对每个字符进行处理。同时在插入节点的时候可以判断插入的字符串是否为字典树中已插入的某个单词的公共前缀,或者字典树中已插入的某个单词是否是该单词的公共前缀。若当前字符串包括其他字符串的公共前缀,或者其他字符串中包括当前字符串的公共前缀,则对相同公共前缀的字符进行复用。否则将该单词在字典树中新建为相应的子节点。
计算机设备进而利用多个业务关键词集合以及业务关键词的权重构建字典树。具体地,计算机设备可以利用业务关键词的每个字符构建一个对应的节点,每个节点可以存储对应的字符以及权重。其中,业务关键词集合中的多个业务关键词包括相同的公共前缀词,在字典树中则可以直接在公共前缀词的字符节点下构建多个业务匹配词相应的子节点。
本实施例中,通过构建包括字符和权重的树形结构,由此能够有效构建存储了多个业务关键词的字符串和对应的权重的字典树,从而在字典树中匹配时,能够快速有效地获取与搜索词相匹配字符串以及对应的权重。
在一个实施例中,基于各业务关键词集合中的业务关键词以及对应的权重构建字典树包括:根据公共前缀词确定各业务关键词相应的字符串,并确定业务关键词集合中各业务关键词的字符序列;基于公共前缀词和各业务关键词的字符序列构建字典树的至少一个公共前缀节点,根据各业务关键词的字符序列以及相应字符串的字符构建相应的子节点;将各业务关键词的权重存储至相应字符串对应的字符串的节点中。
其中,字典树中的每个节点可以存储相应的字符和权重。业务关键词集合中包括公共前缀词和相应的字符串,每个业务关键词由公共前缀词和相应的字符串组成。计算机设备可以根据公共前缀词以及相应字符串的顺序确定业务关键词集合中每个业务关键词的字符序列。业务关键词集合中的各业务关键词相应的字符串可以为公共前缀词的字符子集。公共前缀词可以包括多个字符,也可以仅为一个字符。
计算机设备利用业务关键词集合构建字典树的过程中,可以根据公共前缀词和相应的字符序列构建公共前缀节点,公共前缀节点可以包括多个字符节点,也可以仅为一个字符节点。计算机设备并在前缀节点的基础上,根据字符序列利用该集合中的多个业务词的字符构建对应的多个子节点,每个字符对应一个子节点。计算机设备构建字典树中的节点时,将相应的字符存储至节点中,并业务关键词的权重存储至业务词对应的字符串的节点中。
业务关键词的权重可以存储至字符子节点中,也可以存储至字符串结尾的末端的叶子节点中。具体地,若字符串包括字符子集,将字符串的权重存储至字符串的最后一个字符的字符节点的权重空间中。例如,“公积金”这个公共前缀词后面可以对应“公积金提取”、“公积金查询”、“公积金贷款”、“公积金存储”、“公积金存储时间”等多个业务关键词。“公积金”的字符子集可以包括“提取”、“查询”、“贷款”、“存储”等,其中,“公积金存储”公共前缀词后面可以对应“公积金存储时间”,则“公积金存储”还可以包括字符子集“时间”。因此,在构建字典树时,则可以将“公积金存储”的权重存储至“储”这个字符对应的子节点中。
若字符串不包括字符子集,在字符串的节点末端配置叶子节点,计算机设备则将业务关键词的权重存储至该字符串对应的叶子节点中。
在其中一个实施例中,若节点还包括子节点时,可以将该节点的权重确定为空值或初始阈值。例如,计算机设备还可以将包含子节点的节点权重确定为“0”。当构建出业务词的完整字符串的子节点后,在子节点的末端配置相应的叶子节点,计算机设备则可以在叶子节点中存储一个预设的结束字符,结束字符用于表示相应的业务关键词的字符序列到此结束。计算机设备并将该叶子节点对应序列的业务关键词的权重存储至叶子节点。
举例说明,如图4所示,以“公积金贷款”、“公积金提取”、“公积金查询”为例,图4为字典树的局部结构示意图。“公积金贷款”、“公积金提取”、“公积金查询”可以为一个业务关键词集合,业务关键词集合中包括三个业务关键词。其中,“公积金贷款”、“公积金提取”、“公积金查询”均包含“公积金”的公共前缀词,“贷款”、“提取”、“查询”则可以为“公积金”的前缀词对应的业务词。计算机设备则可以将“公积金”作为公共前缀词构建相应的公共前缀节点,“金”为直接前缀节点,并在“金”的直接前缀节点的基础上构建多个业务词对应字符串的子节点。如图4中所示,第一个节点R为根节点,根节点下面的多个节点n均为子节点,子节点n后面的末端节点l为叶子节点。其中,n1、n2、n3为“公积金贷款”、“公积金提取”、“公积金查询”对应的公共前缀节点,n3位直接前缀节点。计算机设备进而在每个字符串的子节点的末端构建相应的叶子节点,并在叶子节点存储预设的结束字符,例如结束字符可以为“$”,表示该节点路径的字符串结束,可以用于识别字符串的遍历终点。其中,非叶子节点的权重可以为空值,例如可以为“0”。“公积金”的公共前缀词和对应的“贷款”、“提取”、“查询”等多个业务词构建的树形结构,可以为字典树中的其中一个子树。由此计算机设备能够有效地存储业务关键词对应的字符以及权重。
在一个实施例中,如图5所示,提供了一种具体的构建字典树的步骤,包括以下内容:
S502,获取业务数据,业务数据包括业务关键词以及对应的搜索热度。
S504,基于各业务关键词对应的搜索热度确定各业务关键词的权重。
S506,对各业务关键词进行分词处理,获得各业务关键词的公共前缀词。
S508,基于公共前缀词,根据各业务关键词生成包括公共前缀词的业务关键词集合。
S510,根据公共前缀词确定各业务关键词相应的字符串,并确定业务关键词集合中各业务关键词的字符序列。
S512,基于公共前缀词和各业务关键词的字符序列构建字典树的至少一个公共前缀节点,根据各业务关键词的字符序列以及相应字符串的字符构建相应的子节点。
S514,将各字符串对应的字符存储至相应节点的字符空间。
S516,若字符串包括字符子集,将各业务关键词对应的权重存储至字符串的最后一个字符节点的权重空间。
S518,若字符串不包括字符子集,在字符串的节点末端配置叶子节点,对叶子节点配置结束字符,将结束字符存储至字符空间,并将字符串对应的权重存储至叶子节点的权重空间。
其中,在构建字典树时,计算机设备可以对字典树的每个节点配置字符空间和权重空间,字符空间用于存储每个节点的字符,权重空间用于存储节点对应字符串的权重。每个节点可以部署两部分存储空间,即字符空间和权重空间。字典树中的权重空间的存储方式可配置为增量存储。例如,字符空间可以字符类型,通常占2个字节的存储容量。权重空间可以为长整型(Long类型),通常占4个字节的存储容量。
字典树中包括根节点和多个子节点,根节点不包含字符,根节点包括权重。除根节点以外的每个节点均可以存储字符,还可以存储相应的权重。即根节点以外的每个节点包括字符空间和权重空间。每个节点的所有子节点包含的字符都不相同。其中,根节点的权重为空,或为初始值,例如根节点的权重可以为“0”。
计算机设备件构建字典树的过程中,利用多个业务关键词构建相应的公共前缀节点和子节点。计算机设备将每个节点的字符存储至对应的字符空间,业务关键词的权重的可以存储至子节点的权重空间中,也可以存储至叶子节点的权重空间中。对叶子节点配置结束字符,将结束字符存储至字符空间。
具体地,若当前配置的字符串的最后一个字符后面还包括字符子集时,将字符串的权重存储至字符串的最后一个字符的字符节点的权重空间中。若当前配置的字符串的最后一个字符后面不包括字符子集时,表示该字符串为完整的字符串,此时则在字符串的最后一个字符节点的末端配置叶子节点,对叶子节点配置结束字符,将结束字符存储至字符空间。计算机设备还获取叶子节点对应的业务关键词的权重,将权重存储至叶子节点的权重空间。从而能够有效地存储业务关键词对应的字符以及权重。
本实施例中的字典树比传统的字典树需要更多的存储空间,但同时存储了字符串和对应的权重,在字典树中查找的相匹配的字符串的同时,也获取了相应的权重,从而减少了额外计算权重的计算量和资源占用,有效提高了数据搜索的效率,由此能够快速有效地查找相匹配的搜索建议词。
在一个实施例中,基于各业务关键词集合中的业务关键词以及对应的权重构建字典树,包括:获取各业务关键词中的首字符,获取各首字符对应的散列值;基于各首字符的散列值,确定各业务关键词对应的子树集群标识;将各业务关键词以及对应的权重分发至各子树集群标识对应的子树集群服务器,通过各子树集群服务器基于接收的各业务关键词以及对应的权重构建字典树。
其中,散列值是基于散列函数(或散列算法,又称哈希函数)对数据创建的数字“指纹”。通过散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来,散列函数将数据打乱,重新创建一个数据指纹,即散列值。散列值通常用一个短的随机字母和数字组成的字符串来代表。通过散列函数可以将每个字符元素映射到一系列无冲突的整数的映射值,得到的映射值即为散列值。
计算机设备获取各业务关键词以及对应的权重后,获取各业务关键词中的首字符,即业务关键词的第一个字符。计算机设备则获取该首字符的散列值。具体地,计算机设备中可以预先存储各个字符的散列值。计算机设备获取各业务关键词的首字符后,直接从存储库中查找该首字符对应的散列值。在另一个实施例中,计算机设备获取各业务关键词的首字符后,也可以根据预设算法实时计算对应的散列值。
计算机设备进而根据各业务关键词中首字符的散列值,确定各业务关键词对应的子树集群标识,并将各业务关键词以及对应的权重分发至各子树集群标识对应的子树集群服务器。各子树集群服务器基于获取业务关键词以及对应的权重后,对各业务关键词进行分词处理,获得各业务关键词的公共前缀词。基于公共前缀词,根据各业务关键词生成包括公共前缀词的业务关键词集合。根据公共前缀词确定各业务关键词相应的字符串,并确定业务关键词集合中各业务关键词的字符序列;基于公共前缀词和各业务关键词的字符序列构建字典树的至少一个公共前缀节点,根据各业务关键词的字符序列以及相应字符串的字符构建相应的子节点;将各业务关键词的权重存储至相应字符串对应的字符串的节点中,从而构建相应的字典树。
在其中一个实施例中,计算机设备可以为集群服务器,集群服务器中包括路由服务器和至少一个子树集群服务器。路由服务器获取包括业务关键词以及对应的搜索热度的业务数据后,获取各业务关键词中首字符的散列值,基于各业务关键词中首字符的散列值,确定各业务关键词对应的子树集群标识,并将各业务关键词以及对应的权重分发至各子树集群标识对应的子树集群服务器。通过各子树集群服务器对各业务关键词进行分词处理,获得各业务关键词的公共前缀词;基于公共前缀词,根据各业务关键词生成包括公共前缀词的业务关键词集合;基于各业务关键词集合中的业务关键词以及对应的权重构建相应的字典树。
本实施例中,通过构造分布式的多个子树集群,并构造多颗字典树结构,每一颗是带权重字典树的子集,每一个子集以一个集群方式部署。由此能够将大量的数据进行扩容存储,由此能够有高效地对大量数据进行并发处理,从而能够有效提高数据的存储效率和处理效率。
在一个实施例中,如图6所示,构建字典树的步骤,具体包括一下内容:
S602,获取各业务关键词中的首字符,获取各首字符对应的散列值。
S604,基于散列值和预设算法确定各业务关键词对应的目标参数值。
S606,基于目标参数值,确定各业务关键词对应的存储位置;根据存储位置对各业务关键词分配相应的子树集群标识。
S608,将各业务关键词以及对应的权重分发至各子树集群标识对应的子树集群服务器,通过各子树集群服务器基于接收的各业务关键词以及对应的权重构建字典树。
计算机设备获取各业务关键词以及对应的权重后,获取各业务关键词中的首字符,并获取该首字符的散列值。计算机设备进一步基于散列值和预设算法确定各业务关键词对应的目标参数值,并基于目标参数值确定各业务关键词对应的存储位置。
具体地,计算机设备可以采用取模算法或一致性哈希算法对散列值进行计算出来,得到对应的目标参数值。例如,散列值的计算公式可以为:s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]。其中s[0]是拼音字符串数组第一个字符的ascii值,是s[1]是拼音字符串数组的第2个字符的ascii值,n为拼音字符串长度。
例如,以业务关键词为“公积金提取”为例,获取“公积金提取”的首字符,即“公”,对应的字符串可以为“g”、“o”、“n”、“g”。则可以根据预设算法计算“公”对应的散列值。由此,“公”的散列值即为s[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]=103*31^(4-1)+111*31^(4-2)+110*31^(4-3)+103=103*31*31*31+111*31*31+110*31+103=3178657。
在其中一个实施例中,计算机设备可以采用取模算法对散列值取模,得到对应的目标参数值。具体地,计算机设备对散列值取对m取模,则可以根据得到的最终目标参数值,确定字符串在对应的子树的存储位置。其中,如果字符串为中文,可以将字符串转为对应的拼音字符。具体地,计算公式可以如下:
目标参数值=散列值(拼音字符串)%m,其中,m为预设系数。
计算机设备则根据上述预设算法对散列值取模,得到对应的目标参数值。例如,以业务关键词为“公积金提取”为例,“公积金提取”的首字符的散列值为3178657,则对散列值进行计算,得到3178657%3=1,即对散列值进行取余,得到对应的余数是1,目标参数值即为1。进而可以根据得到的目标参数值确定“公积金提取”这个业务关键词确定保存在对应的第2颗子树,即根据目标参数值,确定各业务关键词对应的存储位置。由此能够有效地对各业务关键词分配相应的子树集群标识,从而有效地将各个业务关键词以及对于的权重分配至相应的存储位置,即相应的子树集群服务器。
在另一个实施例中,计算机设备可以采用一致性哈希算法对散列值进行计算,得到对应的目标参数值。具体地,计算机设备字典树集群中获取各子树集群标识对应的集群哈希值,基于各集群哈希值配置映射空间;基于散列值,根据一致性哈希算法确定各业务关键词对应的关键词哈希值;基于映射空间确定各关键词哈希值对应的集群哈希值,根据集群哈希值对各业务关键词分配相应的子树集群标识。其中,计算机设备可以首先将各个子树集群服务器映射到哈希映射空间,例如哈希映射空间可以为环形结构的哈希环,将各子树集群标识对应的集群哈希值在哈希映射空间中,以对应的哈希值排列。计算机设备进而将各业务关键词根据一致性哈希算法将各业务关键词的哈希值映射至哈希映射空间。在各集群哈希值和各关键词哈希值都映射至同一个哈希环之后,要确定某个业务关键词对象映射至哪个节点,只需从该对象开始,沿着哈希环顺时针方向查找,找到的第一个子树集群节点,即将该子树集群节点对应的集群哈希值确定为该业务关键词对应的目标参数值。并基于目标参数值确定该业务关键词对应的子树集群标识。
通过采用一致性哈希算法,基于散列值分配各数据对应的子树集群标识,从而能够更加均衡子树集群的数据,保证各子树集群的负载均衡。
在其中一个实施例中,为了打破,单机的CPU和内存限制,可以配置预设的数据切分规则,对原来单课字典树的数据进行切分,可以根据业务系统要求的并发支持,比如每秒需要支持多少qps。对切分后的子树进行压力测试,如果不满足,则继续拆分成更多的子树;在领一个实施例中,还可以根据虚拟机的数量决定子树集群的数量,假设有n个虚拟主机可以使用,则将字典树切分成n颗子树,并基于相应的n个子树集群对业务数据进行存储,由此能够有效保证数据存储的均衡性和有效性。
在一个实施例中,根据搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历字符节点对应的子节点序列,从字典树中提取子节点序列对应的字符串,从字符串相应的节点中获取各字符串对应的权重,包括:根据搜索字符的字符序列在字典树中查找相应的字符节点,将字符节点确定为公共前缀节点,将公共前缀节点的最后一个字符节点确定为直接前缀节点,根据公共前缀节点和直接前缀节点确定目标搜索子树;根据直接前缀节点确定在目标搜索子树中的查找路径,根据查找路径遍历直接前缀节点对应的至少一个子节点;获取所遍历的各子节点对应的字符串和权重,基于各字符串和相应的权重生成公共前缀节点对应的字符串集合。
其中,计算机设备可以将直接前缀节点的最后一个节点作为目标搜索子树的搜索根节点,查找路径可以为从搜索根节点到每个叶子节点的路径。
计算机设备接收终端输入的搜索字符后,根据搜索字符的字符序列在字典树中查找相应的字符,并匹配相应的字符节点。将字符节点确定为公共前缀节点,公共前缀节点可以为一个,也可以为多个。当搜索字符为一个字符时,在字典树中匹配该字符对应的字符节点,并将对应的字符节点确定为公共前缀节点和子树根节点,并将该公共前缀节点对应的多个子节点作为目标搜索子树。若搜索字符包括多个字符,计算机设备则首先在字典树中查找终端输入的第一个字符,并继续根据字符序列在字典树中查找终端输入的第二个字符,直到查找到搜索字符对应的所有字符节点,将搜索字符对应的多个字符节点确定为公共前缀节点,将公共前缀节点的最后一个字符节点确定为直接前缀节点,根据公共前缀节点和直接前缀节点确定目标搜索子树。计算机设备进而将公共前缀节点和直接前缀节点和对应的若干子节点作为目标搜索子树。
计算机设备确定搜索字符对应的公共前缀节点以及待搜索的目标搜索子树后,则在目标搜索子树中查找相应的子节点。具体地,计算机设备根据直接前缀节点确定出在目标搜索子树中的查找路径,根据查找路径分别查找对应的多个子节点。每个子节点包括相应的字符,叶子节点则包括该条查找路径对应的字符串的权重。计算机设备利用每条查找路径遍历的子节点的字符串生成字符串集合。字符串集合中还包括每个字符串的权重。目标搜索子树中的公共前缀节点则为字符串集合对应的公共前缀字符。
计算机设备进而可以利用公共前缀字符和字符串集合中的多个字符串分别生成多个搜索建议词,每个搜索建议词的权重则为相应字符串的权重。
在其中一个实施例中,若搜索字符在字典树中不存在对应的字符节点,表示字典树里没有该搜索词,计算机设备则不向终端返回搜索建议词。若根据搜索字符在字典树中查找到相应的字符节点,但该字符节点下不存在除叶子节点的子节点时,表示该搜索字符在字典树中不存在搜索建议词,此时计算机设备也不向终端返回搜索建议词。
本实施例中,通过根据搜索字符在字典树中进行前缀查询,从而能够快速有效地在字典树中查找搜索字符对应的字符串,同时也能够快速有效地获取到字符串对应的权重。
在一个实施例中,获取所遍历的各子节点对应的字符串和权重,基于各字符串和相应的权重生成公共前缀节点对应的字符串集合,包括:根据查找路径在目标搜索子树中遍历与直接前缀节点对应的子节点;获取当前字符节点的权重,当当前字符节点的权重为空时,遍历当前字符节点的下一节点;直到遍历至包括结束字符的叶子节点时,获取叶子节点的权重;根据查找路径确定叶子节点对应的字符串和字符串的权重。
其中,字典树中的每个节点存储了相应的字符和权重,字典树的叶子节点则存储了结束字符和该叶子节点相应路径的字符串的权重。
计算机设备获取搜索字符后,根据搜索字符的字符序列在字典树中查找相应的字符,并匹配相应的字符节点,将对应的字符节点确定为公共前缀节点,将直接前缀节点确定为搜索根节点,搜索根节点可以为子树根节点。计算机设备并将该直接前缀节点对应的多个子节点作为目标搜索子树。计算机设备则根据查找路径在目标搜索子树中进行遍历。
具体地,计算机设备根据公共前缀节点和直接前缀节点确定出在目标搜索子树中的查找路径。其中,计算机设备可以将公共前缀节点的整体作为目标搜索子树的搜索根节点,也可以将直接前缀节点作为目标搜索子树的搜索根节点。计算机设备则根据查找路径从目标搜索子树的搜索根节点为起点分别查找对应的多个子节点。
字典树中的每个子节点包括相应的字符和权重,若子节点的字符不为预设的结束字符时,表示该节点还存在子节点且并非终端节点,该节点的权重则为空,例如还可以为表示空值的预设阈值。计算机设备在遍历直接前缀节点对应的子节点的过程中,获取所遍历的当前字符节点的权重。当该字符节点的权重为空时,表示该字符节点还包括对应的子节点,计算机设备则继续遍历该字符节点的下一个节点,直到遍历到存在结束字符的叶子节点,表示该条查找路径遍历完成。计算机设备则获取叶子节点中存储的权重,计算机设备进而能够有效地根据查找路径确定该条查找路径下叶子节点所对应的字符串以及字符串的权重。
本实施例中,利用每条查找路径遍历的子节点的字符串生成字符串集合,因此,该字符串集合中包括了搜索字符对应的多个字符串,以及每个字符串的权重。由此计算机设备能够快速有效地在字典树中查找搜索字符对应的字符串,同时也能够快速有效地获取了字符串对应的权重。
在一个实施例中,根据搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历字符节点对应的子节点序列,从字典树中提取子节点序列对应的字符串,从字符串相应的节点中获取各字符串对应的权重,包括:获取搜索字符中的首字符,获取首字符对应的散列值;基于首字符的散列值,确定搜索字符对应的子树集群标识;将搜索字符转发至子树集群标识对应的目标子树集群服务器,通过目标子树集群服务器基于搜索字符,从预构建的字典树中获取相应的搜索建议词和对应的权重。
其中,计算机设备中可以部署有多个子树集群,通过构造多颗字典树结构,每一颗是带权重字典树的子集,每一个子集以一个集群方式部署。
计算机设备搜索字符后,获取搜索字符对应的字符串的第一个字符对应的散列值;根据散列值,确定该字符串在对应的子树的存储位置,即相应的子树集群标识。计算机设备进而将搜索字符转发子树集群标识对应的子树集群服务器;子树集群服务器根据搜索字符在预构建的字典树中查找相应的搜索建议词以及分别对应的权重,并返回给计算机设备。计算机设备将搜索建议词按照权重排序后返回至终端。通过将搜索数据存储在分布式的子树集群中,当数据量大时,能够快速有效地对搜索数据进行处理,并高效地从相应的子树集群中获取相应的搜索建议词,从而有效提高了数据的并发处理效率和数据读取效率。
在其中一个实施例中,字典树集群中包括路由服务器和多个子树集群服务器,各个子树集群服务器中存储了相应的搜索数据对应的子树。用户可以通过终端的搜索页面输入搜索字符,终端则基于搜索字符发起搜索请求,终端可以通过网关将搜索请求发送至路由服务器。路由服务器获取搜索请求以及搜索请求携带的搜索字符后,获取搜索字符中首字符对应的散列值;根据散列值,确定该搜索字符串所在存储位置对应的子树集群标识。路由服务器进而将搜索请求转发子树集群标识对应的子树集群服务器;子树集群服务器进而根据搜索字符在预构建的字典树中查找相应的搜索建议词以及分别对应的权重,并返回给路由服务器。路由服务器将搜索建议词按照权重排序后返回至终端,并在终端的搜索页面展示搜索建议词。例如,如图7所示,为一个实施例中对搜索字符进行搜索处理的示意图,字典树集群中可以包括多个带权重字典树子树集群。
本实施例中,在分布式的字典树集群中,当用户输入前缀字符串时,并通过终端发起搜索请求后,通过路由服务器根据搜索字符的第一个字符的散列值,确定由哪一个子树集群服务器进行处理,并将搜索请求转发至相应的子树集群服务器,使得相应的子树集群服务器分别对搜索请求进行处理。当数据量大时,由此能够快速有效地对搜索数据进行处理,并高效地从相应的子树集群中获取相应的搜索建议词,从而有效提高了数据的并发处理效率和数据读取效率。
在一个实施例中,根据权重对各搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示,包括:基于各字符串的权重分别确定与各字符串对应的搜索关键词的权重;基于权重对各搜索建议词进行降序排序,基于排序结果和数量阈值获取搜索建议词;将获取的搜索建议词返回至终端,并按照排序结果通过终端的搜索页面对搜索建议词进行展示。
计算机设备根据搜索字符在字典树中查找到与搜索字符相匹配的字符串集合后,则可以利用搜索字符和字符串集合中的多个字符串分别生成多个搜索建议词。具体地,计算机设备可以将搜索字符作为公共前缀字符,利用公共前缀字符分别与字符串集合中的每个字符串进行组合,从而可以分别得到一个对应的搜索建议词。
例如,以搜索字符为“公积金”为例,计算机设备根据“公积金”在字典树中查找对应的字符节点,并将这三个字符节点作为公共前缀节点,在字典树中遍历查找该公共前缀节点所对应的若干子节点。参照图4,“公积金”对应的公共前缀节点可以包括“贷款”、“提取”、“查询”等多个子节点。计算机设备则获取所遍历的多个子节点对应的字符串和权重,并利用多个字符串和权重生成公共前缀节点对应的字符串集合。因此生成的字符串集合中则可以包括“贷款/24”、“提取/45”、“查询/21”等多个字符串和对应的权重。计算机设备进而利用搜索字符和字符串集合中的多个字符串分别生成多个搜索建议词,从而可以得到“公积金贷款(权重24)”、“公积金提取(权重45)”、“公积金查询(权重21)”的搜索建议词以及对应的权重。计算机设备根据权重进行降序排序,即可以按照权重从高到低排序。其中,若搜索建议词的数量超过预设数量阈值,则在排序后的多个搜索建议词中提取预设数量阈值的搜索建议词,并将提取的搜索建议词按照排序结果返回至终端,并在终端的搜索界面进行展示。参照图,8所示,图8为用户通过终端输入“公积金”的搜索字符后,根据搜索字符返回相应的搜索建议词的推送结果的界面示意图。
在一个实施例中,上述基于字典树的搜索处理方法还包括:根据预设频率获取历史业务数据,历史业务数据包括业务关键词和对应的当前搜索热度;根据各业务关键词的当前搜索热度确定各业务关键词的当前权重;基于各业务关键词以及对应的当前权重更新字典树。
其中,字典树中的每个节点的权重的存储方式为增量存储。由于初始构建的字典树中存储有多个字符以及多个字符串的权重,而在数据搜索系统的运行过程中,一些字符串的搜索热度可能会发生变化,起对应的权重也会随之变化。因此,计算机设备可以根据预设频率利用一段时间内的历史业务数据对字典树进行更新,以更新字典树中的相应的字符以及权重,以保证字典树中存储的业务关键词的权重的准确度。
具体地,计算机设备根据预设频率从本地数据库或第三方数据库获取若干历史业务数据。历史业务数据可以是过去一段时间内的业务数据、搜索数据以及话题数据等。历史业务数据中包括相应的业务关键词以及当前搜索热度。计算机设备则对历史业务数据进行关键词提取,得到多个业务关键词和相应的当前搜索热度,并根据当前搜索热度计算相应业务关键词的当前权重。
计算机设备则在字典树中查找该业务关键词对应的字符串以及字符串的权重,将字典树中的字符串的权重与业务关键词的当前权重进行比较,若当前权重与字典树中存储的权重不同,则将字典树中的该字符串的权重更新为当前权重,由此对字典树中相应业务关键词的权重进行更新。由此能有效地根据历史业务数据对字典树中的业务关键词以及权重进行动态更新,从而有效保证了字典树中存储的业务关键词以及对应权重的有效性和准确度。
在一个实施例中,基于各业务关键词以及对应的当前权重更新字典树,包括:若业务关键词中包括更新业务关键词,提取更新业务关键词和对应的当前权重;根据更新业务关键词的前缀字符确定对应的更新字符和字符序列;基于字符序列将更新字符和对应的当前权重更新字典树中。
计算机设备根据预设频率获取若干历史业务数据后,对历史业务数据进行关键词提取,得到多个业务关键词和相应的当前搜索热度,并根据当前搜索热度计算相应业务关键词的当前权重。计算机设备进一步将提取的业务关键词与数据库中已有的业务关键词进行比较。其中,数据库可以为本地数据库,也可以第三方数据库。若提取的业务关键词中包括数据库中没有的业务关键词时,则表示该业务关键词为新增的业务关键词,并将该业务关键词确定为更新业务关键词。
计算机设备则需要将更新业务关键词和对应的当前权重更新至字典树中。具体地,计算机设备识别字典树中是否存在更新业务关键词的公共前缀字符,若字典树中存在更新业务关键词的部分前缀字符,计算机设备则根据业务关键词的公共前缀字符确定对应的更新字符和字符序列,并将更新业务关键词拆分为公共前缀字符和更新字符。计算机设备则将更新字符按照字符序列在字典树中新增对应的更新字符节点,并在更新字符节点的末端添加相应的叶子节点,在叶子节点中存储预设的结束字符,并将该更新业务关键词的当前权重存储至叶子节点。
若字典树中不存更新业务关键词的公共前缀字符,计算机设备则将业务关键词的所有字符确定为更新字符,并根据业务关键词的字符序列在字典树中新增更新字符对应的更新字符节点,并将更新业务关键词的当前权重新增至对应的叶子节点中。由此能够有效地将更新业务关键词和对应的当前权重更新至字典树中。由此能有效地根据历史业务数据对字典树中的业务关键词以及权重进行动态更新,从而有效保证了字典树中存储的业务关键词以及对应权重的有效性和准确度。
在一个具体的实施例中,如图9所示,提供了一种具体的基于字典树的搜索处理方法,包括以下步骤:
S902,获取搜索字符。
S904,根据搜索字符的字符序列在字典树中查找相应的字符节点,将字符节点确定为公共前缀节点,将公共前缀节点的最后一个字符节点确定为直接前缀节点,根据公共前缀节点和直接前缀节点确定目标搜索子树。
S906,根据直接前缀节点确定在目标搜索子树中的查找路径,根据查找路径遍历直接前缀节点对应的至少一个子节点。
S908,根据查找路径在目标搜索子树中遍历与直接前缀节点对应的子节点。
S910,获取当前字符节点的权重,当当前字符节点的权重为空时,遍历当前字符节点的下一节点。
S912,直到遍历至包括结束字符的叶子节点时,获取叶子节点的权重;根据查找路径确定叶子节点对应的字符串和字符串的权重。
S914,基于各字符串的权重分别确定与各字符串对应的搜索关键词的权重。
S916,基于权重对各搜索建议词进行降序排序,基于排序结果和数量阈值获取搜索建议词。
S918,将获取的搜索建议词返回至终端,并按照排序结果通过终端的搜索页面对搜索建议词进行展示。
本实施例中,由于字典树中存储了多个业务关键词的字符串和对应的权重,因此在字典树中匹配时,能够直接从字典树中快速有效地获取与搜索词相匹配字符串以及对应的权重。进而根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示。通过在字典树中分别配置字符和权重的存储空间,从而能够快速有效地利用字典树匹配搜索词对应的搜索建议词,同时也能够获取搜索建议词对应的权重,无需额外计算搜索建议词的权重再进行排序,有效提高了搜索处理的效率。
本申请还提供一种应用场景,该应用场景应用上述的基于字典树的搜索处理方法。具体地,该基于字典树的搜索处理方法在该应用场景的应用如下:
用户终端中部署有搜索应用,搜索应用包括了搜索引擎系统。终端的搜索页面中包括搜索框。用户可以通过键盘或鼠标输入的文本信息等内容。终端可以通过搜索页面的搜索框输入待搜索的搜索字符,并向搜索引擎对应的服务器发送搜索请求。服务器接收搜索请求后,获取搜索请求携带的搜索字符,根据搜索字符在预构建的字典树中查找相应的字符节点,根据字符节点在字典树中进行遍历,由此获取子节点序列对应的字符串和权重。由于字典树中存储了多个业务关键词的字符串和对应的权重,因此在字典树中匹配时,能够直接从字典树中快速有效地获取与搜索词相匹配字符串以及对应的权重。进而根据搜索字符和字符串生成搜索建议词,根据权重对搜索建议词进行排序,将排序后的搜索建议词返回至终端进行展示,从而能够快速精准地获取相应的搜索数据,有效提高了搜索数据的读取效率和搜索处理效率。
应该理解的是,虽然图2、3、5、6、9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3、5、6、9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种基于字典树的搜索处理装置装置1000,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:数据获取模块1002、数据搜索模块1004和数据处理模块1006,其中:
数据获取模块1002,用于获取搜索字符;
数据搜索模块1004,用于根据搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历字符节点对应的子节点序列,从字典树中提取子节点序列对应的字符串,从字符串相应的节点中获取各字符串对应的权重;
数据处理模块1006,用于根据搜索字符和各字符串生成搜索建议词,将各字符串对应的权重确定为相应的搜索建议词的权重;根据权重对各搜索建议词进行排序,将排序后的搜索建议词通过终端的搜索页面进行展示。
在一个实施例中,如图11所示,上述基于字典树的搜索处理装置装置1000还包括字典树构建模块1001,用于获取业务数据,业务数据包括业务关键词以及对应的搜索热度;基于各业务关键词对应的搜索热度确定各业务关键词的权重;对各业务关键词进行分词处理,获得各业务关键词的公共前缀词;基于公共前缀词,根据各业务关键词生成包括公共前缀词的业务关键词集合;基于各业务关键词集合中的业务关键词以及对应的权重构建字典树。
在一个实施例中,字典树构建模块1001还用于根据公共前缀词确定各业务关键词相应的字符串,并确定业务关键词集合中各业务关键词的字符序列;基于公共前缀词和各业务关键词的字符序列构建字典树的至少一个公共前缀节点,根据各业务关键词的字符序列以及相应字符串的字符构建相应的子节点;将各业务关键词的权重存储至相应字符串对应的字符节点中。
在一个实施例中,字典树的节点包括字符空间和权重空间,字典树构建模块1001还用于将各字符串对应的字符存储至相应节点的字符空间;若字符串包括字符子集,将各业务关键词对应的权重存储至字符串的最后一个字符节点的权重空间;若字符串不包括字符子集,在字符串的节点末端配置叶子节点,对叶子节点配置结束字符,将结束字符存储至字符空间,并将字符串对应的权重存储至叶子节点的权重空间。
在一个实施例中,字典树构建模块1001还用于获取各业务关键词中的首字符,获取各首字符对应的散列值;基于各首字符的散列值,确定各业务关键词对应的子树集群标识;将各业务关键词以及对应的权重分发至各子树集群标识对应的子树集群服务器,通过各子树集群服务器基于接收的各业务关键词以及对应的权重构建字典树。
在一个实施例中,字典树构建模块1001还用于基于散列值和预设算法确定各业务关键词对应的目标参数值;基于目标参数值,确定各业务关键词对应的存储位置;根据存储位置对各业务关键词分配相应的子树集群标识。
在一个实施例中,数据搜索模块1004还用于根据搜索字符的字符序列在字典树中查找相应的字符节点,将字符节点确定为公共前缀节点,将公共前缀节点的最后一个字符节点确定为直接前缀节点,根据公共前缀节点和直接前缀节点确定目标搜索子树;根据直接前缀节点确定在目标搜索子树中的查找路径,根据查找路径遍历直接前缀节点对应的至少一个子节点;获取所遍历的各子节点对应的字符串和权重,基于各字符串和相应的权重生成公共前缀节点对应的字符串集合。
在一个实施例中,数据搜索模块1004还用于根据查找路径在目标搜索子树中遍历与直接前缀节点对应的子节点;获取当前字符节点的权重,当当前字符节点的权重为空时,遍历当前字符节点的下一节点;直到遍历至包括结束字符的叶子节点时,获取叶子节点的权重;根据查找路径确定叶子节点对应的字符串和字符串的权重。
在一个实施例中,数据搜索模块1004还用于获取搜索字符中的首字符,获取首字符对应的散列值;基于首字符的散列值,确定搜索字符对应的子树集群标识;将搜索字符转发至子树集群标识对应的目标子树集群服务器,通过目标子树集群服务器基于搜索字符,从预构建的字典树中获取相应的搜索建议词和对应的权重。
在一个实施例中,数据处理模块1006还用于基于各字符串的权重分别确定与各字符串对应的搜索关键词的权重;基于权重对各搜索建议词进行降序排序,基于排序结果和数量阈值获取搜索建议词;将获取的搜索建议词返回至终端,并按照排序结果通过终端的搜索页面对搜索建议词进行展示。
在一个实施例中,上述基于字典树的搜索处理装置还包括字典树更新模块,用于根据预设频率获取历史业务数据,历史业务数据包括业务关键词和对应的当前搜索热度;根据各业务关键词的当前搜索热度确定各业务关键词的当前权重;基于各业务关键词以及对应的当前权重更新字典树。
在一个实施例中,字典树更新模块还用于若业务关键词中包括更新业务关键词,提取更新业务关键词和对应的当前权重;根据更新业务关键词的前缀字符确定对应的更新字符和字符序列;基于字符序列将更新字符和对应的当前权重更新字典树中。
关于基于字典树的搜索处理装置的具体限定可以参见上文中对于基于字典树的搜索处理方法的限定,在此不再赘述。上述基于字典树的搜索处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储搜索字符、业务关键词、字典树。搜索建议词等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于字典树的搜索处理方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种基于字典树的搜索处理方法,其特征在于,所述方法包括:
获取搜索字符;
根据所述搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取各字符串对应的权重;
根据所述搜索字符和各字符串生成搜索建议词,将各字符串对应的权重确定为相应的搜索建议词的权重;
根据所述权重对各搜索建议词进行排序,将排序后的搜索建议词通过终端的搜索页面进行展示。
2.根据权利要求1所述的方法,其特征在于,所述获取搜索字符之前,还包括:
获取业务数据,所述业务数据包括业务关键词以及对应的搜索热度;
基于各业务关键词对应的搜索热度确定各业务关键词的权重;
对各业务关键词进行分词处理,获得各业务关键词的公共前缀词;
基于所述公共前缀词,根据各业务关键词生成包括所述公共前缀词的业务关键词集合;
基于各业务关键词集合中的业务关键词以及对应的权重构建字典树。
3.根据权利要求2所述的方法,其特征在于,所述基于所述业务关键词集合中的业务关键词以及对应的权重构建字典树包括:
根据所述公共前缀词确定各业务关键词相应的字符串,并确定所述业务关键词集合中各业务关键词的字符序列;
基于所述公共前缀词和各业务关键词的字符序列构建字典树的至少一个公共前缀节点,根据各业务关键词的字符序列以及相应字符串的字符构建相应的子节点;
将各业务关键词的权重存储至相应字符串对应的字符节点中。
4.根据权利要求3所述的方法,其特征在于,所述字典树的节点包括字符空间和权重空间,所述将各业务关键词的权重存储至相应字符串对应的字符节点中,包括:
将各字符串对应的字符存储至相应节点的字符空间;
若所述字符串包括字符子集,将各业务关键词对应的权重存储至所述字符串的最后一个字符节点的权重空间;
若所述字符串不包括字符子集,在所述字符串的节点末端配置叶子节点,对所述叶子节点配置结束字符,将所述结束字符存储至所述字符空间,并将所述字符串对应的权重存储至所述叶子节点的权重空间。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述基于所述业务关键词集合中的业务关键词以及对应的权重构建字典树,包括:
获取各业务关键词中的首字符,获取各首字符对应的散列值;
基于各首字符的散列值,确定各业务关键词对应的子树集群标识;
将所述各业务关键词以及对应的权重分发至各子树集群标识对应的子树集群服务器,通过各子树集群服务器基于接收的各业务关键词以及对应的权重构建字典树。
6.根据权利要求5所述的方法,其特征在于,所述基于各首字符的散列值,确定各业务关键词对应的子树集群标识,包括:
基于所述散列值和预设算法确定所述各业务关键词对应的目标参数值;
基于所述目标参数值,确定所述各业务关键词对应的存储位置;
根据所述存储位置对各业务关键词分配相应的子树集群标识。
7.根据权利要求1所述的方法,其特征在于,所述根据所述搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取各字符串对应的权重,包括:
根据所述搜索字符的字符序列在所述字典树中查找相应的字符节点,将所述字符节点确定为公共前缀节点,将所述公共前缀节点的最后一个字符节点确定为直接前缀节点,根据所述公共前缀节点和所述直接前缀节点确定目标搜索子树;
根据所述直接前缀节点确定在所述目标搜索子树中的查找路径,根据所述查找路径遍历所述直接前缀节点对应的至少一个子节点;
获取所遍历的各子节点对应的字符串和权重,基于各字符串和相应的权重生成所述公共前缀节点对应的字符串集合。
8.根据权利要求7所述的方法,其特征在于,所述获取所遍历的各子节点对应的字符串和权重,基于各字符串和相应的权重生成所述公共前缀节点对应的字符串集合,包括:
根据所述查找路径在所述目标搜索子树中遍历与所述直接前缀节点对应的子节点;
获取当前字符节点的权重,当所述当前字符节点的权重为空时,遍历所述当前字符节点的下一节点;
直到遍历至包括结束字符的叶子节点时,获取所述叶子节点的权重;
根据所述查找路径确定所述叶子节点对应的字符串和所述字符串的权重。
9.根据权利要求7至8中任一项所述的方法,其特征在于,所述根据所述搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取各字符串对应的权重,包括:
获取所述搜索字符中的首字符,获取所述首字符对应的散列值;
基于所述首字符的散列值,确定所述搜索字符对应的子树集群标识;
将所述搜索字符转发至所述子树集群标识对应的目标子树集群服务器,通过所述目标子树集群服务器基于所述搜索字符,从预构建的字典树中获取相应的搜索建议词和对应的权重。
10.根据权利要求1所述的方法,其特征在于,所述根据所述权重对各搜索建议词进行排序,将排序后的搜索建议词返回至所述终端进行展示,包括:
基于各字符串的权重分别确定与各字符串对应的搜索关键词的权重;
基于所述权重对各搜索建议词进行降序排序,基于排序结果和数量阈值获取搜索建议词;
将获取的搜索建议词返回至所述终端,并按照所述排序结果通过所述终端的搜索页面对所述搜索建议词进行展示。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预设频率获取历史业务数据,所述历史业务数据包括业务关键词和对应的当前搜索热度;
根据各业务关键词的当前搜索热度确定各业务关键词的当前权重;
基于各业务关键词以及对应的当前权重更新所述字典树。
12.根据权利要求11所述的方法,其特征在于,所述基于各业务关键词以及对应的当前权重更新所述字典树,包括:
若所述业务关键词中包括更新业务关键词,提取所述更新业务关键词和对应的当前权重;
根据所述更新业务关键词的前缀字符确定对应的更新字符和字符序列;
基于所述字符序列将所述更新字符和对应的当前权重更新所述字典树中。
13.一种基于字典树的搜索处理装置,其特征在于,所述装置包括:
数据获取模块,用于获取搜索字符;
数据搜索模块,用于根据所述搜索字符的字符序列在预构建的字典树中查找相应的字符节点,遍历所述字符节点对应的子节点序列,从所述字典树中提取所述子节点序列对应的字符串,从所述字符串相应的节点中获取各字符串对应的权重;
数据处理模块,用于根据所述搜索字符和各字符串生成搜索建议词,将各字符串对应的权重确定为相应的搜索建议词的权重;根据所述权重对各搜索建议词进行排序,将排序后的搜索建议词通过终端的搜索页面进行展示。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102346.1A CN110851722A (zh) | 2019-11-12 | 2019-11-12 | 基于字典树的搜索处理方法、装置、设备和存储介质 |
CN2019111023461 | 2019-11-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111460311A true CN111460311A (zh) | 2020-07-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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911102346.1A Pending CN110851722A (zh) | 2019-11-12 | 2019-11-12 | 基于字典树的搜索处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN110851722A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905871A (zh) * | 2021-03-29 | 2021-06-04 | 中国平安人寿保险股份有限公司 | 热点关键词推荐方法、装置、终端及存储介质 |
CN113094470A (zh) * | 2021-04-08 | 2021-07-09 | 蔡堃 | 文本搜索方法和系统 |
CN113312523A (zh) * | 2021-07-30 | 2021-08-27 | 北京达佳互联信息技术有限公司 | 字典生成、搜索关键字推荐方法、装置和服务器 |
CN113342848A (zh) * | 2021-05-25 | 2021-09-03 | 中国平安人寿保险股份有限公司 | 信息搜索方法、装置、终端设备及计算机可读存储介质 |
CN113609352A (zh) * | 2021-08-03 | 2021-11-05 | 北京恒安嘉新安全技术有限公司 | 字符串检索方法、装置、计算机设备及存储介质 |
CN113627178A (zh) * | 2021-08-27 | 2021-11-09 | 四川长虹电器股份有限公司 | 基于字典树分类的可配置化领域识别方法 |
CN115878924A (zh) * | 2021-09-27 | 2023-03-31 | 小沃科技有限公司 | 一种基于双字典树数据处理方法、装置、介质及电子设备 |
CN117272938A (zh) * | 2023-11-22 | 2023-12-22 | 神思电子技术股份有限公司 | 一种用于文本生成的动态限定域解码方法、设备及介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339382B (zh) * | 2020-03-11 | 2023-09-22 | 腾讯科技(深圳)有限公司 | 字符串数据检索方法、装置、计算机设备及存储介质 |
CN113625884A (zh) * | 2020-05-07 | 2021-11-09 | 顺丰科技有限公司 | 一种输入词推荐方法、装置、服务器及存储介质 |
WO2021227059A1 (zh) | 2020-05-15 | 2021-11-18 | 深圳市世强元件网络有限公司 | 一种基于多叉树的搜索词推荐方法及系统 |
CN111737986A (zh) * | 2020-05-15 | 2020-10-02 | 深圳市世强元件网络有限公司 | 一种基于多叉树的搜索词推荐方法及系统 |
CN111813889A (zh) * | 2020-06-24 | 2020-10-23 | 北京安博盛赢教育科技有限责任公司 | 一种提问信息的排序方法、装置、介质和电子设备 |
CN113946719A (zh) * | 2020-07-15 | 2022-01-18 | 华为技术有限公司 | 词补全方法和装置 |
CN111931026A (zh) * | 2020-08-10 | 2020-11-13 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于词性扩展的搜索优化方法及系统 |
CN112069286B (zh) * | 2020-08-28 | 2024-01-02 | 喜大(上海)网络科技有限公司 | 字典树参数更新方法、装置、设备及存储介质 |
CN112364126A (zh) * | 2020-10-21 | 2021-02-12 | 广州市百果园网络科技有限公司 | 一种关键词的提示方法、装置、计算机设备和存储介质 |
CN112800316A (zh) * | 2021-02-04 | 2021-05-14 | 北京易车互联信息技术有限公司 | 一种基于双数组字典树的搜索关键词提取系统 |
CN113555069A (zh) * | 2021-07-22 | 2021-10-26 | 杭州叙简科技股份有限公司 | 一种基于ac自动机的化学品名称检索和抽取方法及装置 |
CN116501781B (zh) * | 2023-06-28 | 2023-09-12 | 中博信息技术研究院有限公司 | 一种增强前缀树的数据快速统计方法 |
-
2019
- 2019-11-12 CN CN201911102346.1A patent/CN110851722A/zh active Pending
-
2020
- 2020-05-29 CN CN202010479380.7A patent/CN111460311A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905871A (zh) * | 2021-03-29 | 2021-06-04 | 中国平安人寿保险股份有限公司 | 热点关键词推荐方法、装置、终端及存储介质 |
CN113094470A (zh) * | 2021-04-08 | 2021-07-09 | 蔡堃 | 文本搜索方法和系统 |
CN113094470B (zh) * | 2021-04-08 | 2022-05-24 | 蔡堃 | 文本搜索方法和系统 |
CN113342848A (zh) * | 2021-05-25 | 2021-09-03 | 中国平安人寿保险股份有限公司 | 信息搜索方法、装置、终端设备及计算机可读存储介质 |
CN113342848B (zh) * | 2021-05-25 | 2024-04-02 | 中国平安人寿保险股份有限公司 | 信息搜索方法、装置、终端设备及计算机可读存储介质 |
CN113312523A (zh) * | 2021-07-30 | 2021-08-27 | 北京达佳互联信息技术有限公司 | 字典生成、搜索关键字推荐方法、装置和服务器 |
CN113609352A (zh) * | 2021-08-03 | 2021-11-05 | 北京恒安嘉新安全技术有限公司 | 字符串检索方法、装置、计算机设备及存储介质 |
CN113609352B (zh) * | 2021-08-03 | 2023-08-04 | 北京恒安嘉新安全技术有限公司 | 字符串检索方法、装置、计算机设备及存储介质 |
CN113627178A (zh) * | 2021-08-27 | 2021-11-09 | 四川长虹电器股份有限公司 | 基于字典树分类的可配置化领域识别方法 |
CN115878924A (zh) * | 2021-09-27 | 2023-03-31 | 小沃科技有限公司 | 一种基于双字典树数据处理方法、装置、介质及电子设备 |
CN115878924B (zh) * | 2021-09-27 | 2024-03-12 | 小沃科技有限公司 | 一种基于双字典树数据处理方法、装置、介质及电子设备 |
CN117272938A (zh) * | 2023-11-22 | 2023-12-22 | 神思电子技术股份有限公司 | 一种用于文本生成的动态限定域解码方法、设备及介质 |
CN117272938B (zh) * | 2023-11-22 | 2024-02-20 | 神思电子技术股份有限公司 | 一种用于文本生成的动态限定域解码方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110851722A (zh) | 2020-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460311A (zh) | 基于字典树的搜索处理方法、装置、设备和存储介质 | |
CN107590214B (zh) | 搜索关键词的推荐方法、装置及电子设备 | |
WO2019118388A1 (en) | Fast indexing with graphs and compact regression codes on online social networks | |
CN106503223B (zh) | 一种结合位置和关键词信息的在线房源搜索方法及装置 | |
CN112765306A (zh) | 智能问答方法、装置、计算机设备和存储介质 | |
KR20100072777A (ko) | 다중 길이 시그니처 파일 기반 분산 색인 시스템 및 방법 | |
CN111611801B (zh) | 一种识别文本地域属性的方法、装置、服务器及存储介质 | |
CN112115232A (zh) | 一种数据纠错方法、装置及服务器 | |
CN106528648A (zh) | 结合Redis内存数据库的分布式RDF关键词近似搜索方法 | |
CN109144964A (zh) | 基于机器学习的日志解析方法和装置 | |
CN108228657B (zh) | 一种关键字检索的实现方法及装置 | |
KR20170086353A (ko) | 대화형 정보 제공 서비스 방법 및 이를 위한 장치 | |
CN113254630A (zh) | 一种面向全球综合观测成果的领域知识图谱推荐方法 | |
CN108027816B (zh) | 数据管理系统、数据管理方法及记录介质 | |
JP5980520B2 (ja) | 効率的にクエリを処理する方法及び装置 | |
CN110209780A (zh) | 一种问题模板生成方法、装置、服务器及存储介质 | |
CN113515589A (zh) | 数据推荐方法、装置、设备以及介质 | |
US20130318092A1 (en) | Method and System for Efficient Large-Scale Social Search | |
JP2008192157A (ja) | コンパクトデシジョンダイアグラムを用いた効率的インデックス付け | |
CN111582967A (zh) | 内容搜索方法、装置、设备及存储介质 | |
CN113407702B (zh) | 员工合作关系强度量化方法、系统、计算机和存储介质 | |
CN111737482A (zh) | 一种适用于数据挖掘的全景可视化图谱生成方法及装置 | |
CN114861057B (zh) | 资源发送方法、推荐模型的训练及装置 | |
JP2020187644A (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
CN113312523B (zh) | 字典生成、搜索关键字推荐方法、装置和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40023497 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |