一种搜索实现方法及系统与流程

文档序号:16146768发布日期:2018-12-05 16:33阅读:121来源:国知局
本发明涉及搜索
技术领域
:,尤其涉及一种搜索实现方法及系统。
背景技术
:目前的传统电商搜索架构,主要采用的是基于solr的文本匹配搜索引擎,并在此基础上发展出多种变形,广泛应用在电商平台、政府机构的对外搜索平台、物流平台,以及电子图书销售平台等在线平台系统中。这类搜索引擎在使用的过程中,需要建立对有关商品名称、特征描述等文字信息的索引,并针对商品信息的文本内容进行匹配和相关度计算。然而,随着市场对于搜索引擎智能化需求逐步提升,需要新建并引进其他排序因素的索引,但是建立在名称,描述,特征这些文字本身上的索引,由于文字本身难以改动,因此在更新或者新建并引进其他排序因素的索引较为不便。由于在索引上的局限性,对于具有智能化搜索需求的业务,比如拥有多重领域的搜索业务,使用这类传统的搜索引擎会具有很大的局限性。技术实现要素:本发明的实施例提供一种搜索实现方法及系统,能够更加方便的处理不同来源的信息,提高了搭建和修改搜索架构更加方便和灵活性。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,本发明的实施例提供的方法,包括:根据从来源提取的数据信息生成键值对,将所生成的键值对存储至高速缓存服务器的数据库表中,其中,一种数据信息的来源对应所述高速缓存服务器中的至少一个数据库表;接收用户设备发送的查询词,根据所述查询词从高速缓存服务器的数据库表中查询键值对,根据查询得到的键值对获取数据信息,并对所获取的数据信息进行融合计算;利用融合处理后的结果,得到经过排序的待返回项目,向所述用户设备发送所述待返回项目。结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所提取的数据信息生成键值对,将所生成的键值对存储至高速缓存服务器的数据库表中,包括:从至少2个来源提取数据信息,并通过预设的数据分析模块分析所提取的数据信息,得到分析结果,其中,所述预设的数据分析模块采用hadoop或者spark的分析手段;将所述分析结果以键值对的形式储存至redis数据库的数据库表中。结合第一方面,在第一方面的第二种可能的实现方式中,所述至少2个来源包括:用于存储商品信息的商品信息库、用于对数据信息进行分数计算的分数计算模块,和用于处理搜索词的搜索词(query)分析模块。结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述将所述分析结果以键值对的形式储存至redis数据库的数据库表中,包括:根据所述分析结果生成no-sql形式的键值对,其中,所述分析结果至少包括:来源于所述商品信息库的商品信息,来源于所述分数计算模块的基于文字分析的分数、基于用户反馈信息的分数、基于商品流行度的分数、基于商铺信息的分数和基于词语/文本向量(word2vec)的分数,来源于所述搜索词分析模块的针对搜索词(query)的解析结果;将所述no-sql形式的键值对存储至redis数据库的数据库表中。结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述查询词从高速缓存服务器的数据库表中查询键值对,根据查询得到的键值对获取数据信息,并对所获取的数据信息进行融合计算,包括:从所述高速缓存服务器的数据库表中确定对应所述查询词的数据库表;并根据所确定的数据库表中的键值对获取数据信息,通过算分模型对所获取的数据信息进行加分和减分综合计算,再根据计算结果得到所述待返回项目。结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述利用融合处理后的结果,得到经过排序的待返回项目,向所述用户设备发送所述待返回项目,包括:根据融合处理后的数据信息,计算得到每个待返回项目的相关性分数;按照相关性分数对待返回项目进行排序,将经过排序的待返回项目返回所述用户设备。第二方面,本发明的实施例提供的系统,包括:线下服务器集群、线上服务器集群和高速缓存服务器;所述线下服务器集群,用于根据从来源提取的数据信息生成键值对,并向所述高速缓存服务器传输;所述高速缓存服务器,用于存储所生成的键值对,其中,一种数据信息的来源对应所述高速缓存服务器中的至少一个数据库表;所述线上服务器集群,用于接收用户设备发送的查询词,再根据所述查询词从高速缓存服务器的数据库表中查询键值对,之后根据查询得到的键值对获取数据信息,并对所获取的数据信息进行融合计算;所述高速缓存服务器,还用于向所述线上服务器集群发送键值对的查询结果;所述线上服务器集群,还用于利用融合处理后的结果,得到经过排序的待返回项目,向所述用户设备发送所述待返回项目。结合第二方面,在第二方面的第一种可能的实现方式中,所述线下服务器集群,具体用于从至少2个来源提取数据信息,并通过预设的数据分析模块分析所提取的数据信息,得到分析结果,其中,所述预设的数据分析模块采用hadoop或者spark的分析手段;再将所述分析结果以键值对的形式储存至redis数据库的数据库表中;其中,所述至少2个来源包括:用于存储商品信息的商品信息库、用于对数据信息进行分数计算的分数计算模块,和用于处理搜索词的搜索词(query)分析模块。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述线下服务器集群,具体用于根据所述分析结果生成no-sql形式的键值对;并将所述no-sql形式的键值对存储至redis数据库的数据库表中其中,所述分析结果至少包括:来源于所述商品信息库的商品信息,来源于所述分数计算模块的基于文字分析的分数、基于用户反馈信息的分数、基于商品流行度的分数、基于商铺信息的分数和基于词语/文本向量(word2vec)的分数,来源于所述搜索词分析模块的针对搜索词(query)的解析结果。结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述线上服务器集群,具体用于从所述高速缓存服务器的数据库表中确定对应所述查询词的数据库表;并根据所确定的数据库表中的键值对获取数据信息,通过算分模型对所获取的数据信息进行加分和减分综合计算,再根据计算结果得到所述待返回项目;和,根据融合处理后的数据信息,计算得到每个待返回项目的相关性分数;并按照相关性分数对待返回项目进行排序,将经过排序的待返回项目返回所述用户设备。本发明实施例提供的搜索实现方法及系统,提供一种基于键值对的搜索引擎模型,采用基于集群分布式计算等数据处理手段,不仅实现对商品文字信息的分析处理,同时还融合了商品流行度以及用户反馈等信息,将不同来源的信息和分数,以键值对形式,储存在高速缓存服务不同的数据库表中。并根据用户发来的搜索词将不同来源的信息和分数进行融合和计算,返回给用户排序好的相关商品序列。相对于目前基于文字本身的索引的引擎模型,本实施例能够更加方便的处理不同来源的信息,提高了搭建和修改搜索架构更加方便和灵活性。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1a、图1b为本发明实施例提供的一种搜索引擎的架构模型;图2为本发明实施例提供的方法流程示意图。具体实施方式为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。本发明的实施例,具体可以实现在一种如图1b所示的系统中,其中,本实施例的架构模型中将整个搜索引擎分为线下服务器集群和线上服务器集群。线下服务器集群用于运行后台batch_process部分,线上服务器集群用于运行前台web_service部分,线上服务器集群用于通过移动无线网络或者物联网接收用户设备发送的查询词。其中,线下服务器集群和线上服务器集群,具体可以是由服务器、工作站、超级计算机等设备组成的,或者是由多个服务器组成的一种用于数据处理的服务器集群系统。需要说明的是,在实际应用中,线下服务器集群和线上服务器集群也可以集成在同一个服务器集群中,即通过同一个服务器集群同时承担线下服务器集群和线上服务器集群的功能,并用于执行本实施例所提供的流程。本实施例采用前后端分离的形式,线下服务器集群只进行数据处理和录入redis数据库,线上服务器集群负责数据融合和分数计算。前后端分离模式,使得电商搜索系统更加稳定,确保安全。本实施例中所揭示的用户设备具体可以实做成单独一台装置,或整合于各种不同的媒体数据播放装置中,诸如机顶盒、移动电话、平板电脑(tabletpersonalcomputer)、膝上型电脑(laptopcomputer)、多媒体播放器、数字摄影机、个人数字助理(personaldigitalassistant,简称pda)、移动上网装置(mobileinternetdevice,mid)或可穿戴式设备(wearabledevice)等。本发明实施例提供一种搜索实现方法,如图2所示,包括:s1、根据从来源提取的数据信息生成键值对,将所生成的键值对存储至高速缓存服务器的数据库表中。其中,一种数据信息的来源对应所述高速缓存服务器中的至少一个数据库表。例如:如图1a所示的,在线下服务器集群可以采用基于集群分布式计算(hadoop,spark)等数据处理手段,将不同来源的数据信息进行处理分析,最终生成键值对(key-valuepair)的形式。由线下服务器集群所生成的键值对、所处理的数据信息等内容,可以存储在高速缓存服务器的数据库表中,其中,高速缓存服务器具体可以采用redis数据库,redis数据库表中储存了线下服务器集群根据不同来源的语料、数据,以及hdfs(分布式文件系统,hadoopdistributedfilesystem)数据,经过hadoop,spark等数据处理手段生成了商品信息,基于文字分析的分数,基于用户反馈信息的分数,基于商品流行度的分数,基于商铺信息的分数,基于词语/文本向量(word2vec)的分数,以及针对用户搜索词(query)的分析结果等信息,其中,每一个信息的种类可以对应相应的键值对,在本实施例中可以称为键值对的来源。并将这些所生成的信息以键值对(key-valuepair)的形式存储在高速缓存服务器中。而高速缓存服务器连接线上服务器集群和线下服务器集群,线上服务器集群通过访问高速缓存服务器,根据用户设备发送的查询词从高速缓存服务器查询数据库表。s2、接收用户设备发送的查询词,根据所述查询词从高速缓存服务器的数据库表中查询键值对,根据查询得到的键值对获取数据信息,并对所获取的数据信息进行融合计算。具体的,线上服务器集群可以从所述高速缓存服务器的数据库表中确定对应所述查询词的数据库表。并根据所确定的数据库表中的键值对获取数据信息,通过算分模型对所获取的数据信息进行加分和减分综合计算,再根据计算结果得到所述待返回项目。其中,线上服务器集群接受用户在用户设备输入的查询词,并在高速缓存服务器中若干个不同的redis表中查找相应数据。具体的,在s1中具体可以从至少2个来源提取数据信息,并通过预设的数据分析模块分析所提取的数据信息,得到分析结果。并将所述分析结果以键值对的形式储存至redis数据库的数据库表中。其中,所述预设的数据分析模块采用hadoop或者spark的分析手段。比如:利用不同来源的语料和信息,采用hadoop,spark等技术手段分析数据,并将分析结果以no-sql形式的键值对储存在redis数据库中,前端针对某个用户搜索词(query)获取对应的不同分数和信息进行融合计算,给出最相关的商品排序序列。s3、利用融合处理后的结果,得到经过排序的待返回项目,向所述用户设备发送所述待返回项目。其中,待返回项目具体可以是商品编号、商品名称或者其它向用户所返回的内容项目的标识信息。例如:根据特定算法,对获取到的不同信息进行融合,最终计算出每项相关商品的相关性分数并排序返回给用户。例如:线上服务器集群根据用户查询词(query),获取有可能有关联的商品列表,在根据其他各个redis表的内容获取对应的信息,根据算分模型进行各项加分、减分综合计算,最终对商品进行过滤和排序,返回给用户一个相关性从高到低的商品列表。本实施例中提供一种将所述分析结果以键值对的形式储存至redis数据库的数据库表中的具体方式,包括:根据所述分析结果生成no-sql形式的键值对。再将所述no-sql形式的键值对存储至redis数据库的数据库表中。其中,如图1所示的,所述至少2个来源包括:用于存储商品信息的商品信息库、用于对数据信息进行分数计算的分数计算模块,和用于处理搜索词的搜索词(query)分析模块。所述分析结果至少包括:来源于所述商品信息库的商品信息,来源于所述分数计算模块的基于文字分析的分数、基于用户反馈信息的分数、基于商品流行度的分数、基于商铺信息的分数和基于词语/文本向量(word2vec)的分数,来源于所述搜索词分析模块的针对搜索词(query)的解析结果。目前的电商搜索架构主要针对商品信息的文本内容进行匹配和相关度计算,仅仅基于文本匹配.本实施例不仅考虑商品文本信息的匹配,而且包括用户反馈信息,商品流行度信息等多方面信息的因素处理模块,对商品进行更加有效的综合排序,从而为电商平台搜索提供了更加多样化的排序因素,例如用户反馈信息,商铺信息,商品流行度信息等等,使得搜索结果更加准确。需要说明的是,redis数据库表中储存了商品信息,基于文字分析的分数,基于用户反馈信息的分数,基于商品流行度的分数,基于商铺信息的分数,基于词语/文本向量(word2vec)的分数,以及针对用户搜索词(query)的分析结果。这些不同的表均以键值对的形式储存,在不同的表中,“键”的形式不同,有的以商品编号(pid)为键,有的以用户搜索词(query)为键,“值”的形式也不尽相同,有的储存的是相关信息的列表,有的是json形式的内容。若用户搜索的词语是“iqhone732g黑色”,则根据相关产品的“产品标题”、“产品名称”、“产品描述”里面的文字去匹配,计算这些产品的标题名称描述里的文字和用户搜索词语的相似性,比如:匹配到了若干个产品,第一个产品代号p001,产品标题是“iqhone732g黑色款”,产品名称是“苹果iqhone732g限量首发”,产品描述“iqhone732g黑色酷炫……”这样这个产品的文字和用户搜索词就非常匹配,匹配分数可以达到0.9;第二个产品代号p002,产品标题是“iqhone732g”,类似这样,没有“黑色”两字,文字匹配分数就相对低一些,分数为0.8;第三个产品代号p003,产品标题是“iqhone7”,这样,匹配分数则更低一些,为0.7最终,数据库中存的是“用户搜索词语”和“对应的文字分析的产品列表及其分数(分数由高到低)”。在本实施例中,s3利用融合处理后的结果,得到经过排序的待返回项目,向所述用户设备发送所述待返回项目,具体可以实现为:线上服务器集群根据融合处理后的数据信息,计算得到每个待返回项目的相关性分数。再按照相关性分数对待返回项目进行排序,将经过排序的待返回项目返回所述用户设备。其中,待返回项目具体可以是商品编号、商品名称或者其它向用户所返回的内容项目的标识信息。例如:根据特定算法,对获取到的不同信息进行融合,最终计算出每项相关商品的相关性分数并排序返回给用户。在根据查询得到的键值对获取数据信息,并对所获取的数据信息进行融合计算后,各项分数融合计算之后的商品列表展示。目前的传统电商搜索架构主要基于solr的全文本匹配搜索引擎,需要建立对商品名称,以及特征描述这些文字的索引。本实施例中,采用no-sql的键值对形式在高速缓存服务(redis数据库)中储存各项不同来源的信息和分数。且传统电商搜索架构普遍基于全文本匹配的solr搜索引擎,新建和更新索引较为不便,本搜索架构的基于键值对储存的特点,在一定程度上提高了整个系统的灵活性,使得加入或者调整某个搜索因子更加方便快捷,帮助企业提高工作效率和效益。本发明基于键值对储存(key-valuestore)的架构模型,采用基于集群分布式计算(hadoop,spark)等数据处理手段,不仅实现了分析处理商品的文字信息,同时还融合了商品流行度以及用户反馈等信息,将不同来源的信息和分数,以no-sql的键值对形式,储存在高速缓存服务(redis数据库)不同的表中,并且建立前端网络服务(web-service)将不同来源的信息和分数进行融合和计算,返回给用户排序好的相关商品序列。本实施例中采用集群分布式计算,使用基于云的(cloud_based)数据处理,因此系统扩容非常容易,只需要申请添加集群节点即可。又由于电子商品的特殊性,对商品进行排序不能只基于文字匹配,本实施例使得系统可以非常方便的加入用户信息反馈分数,商品流行度分数等不同的因素模块,使得搜索结果更加准确合理。而以no-sql的键值对储存商品不同信息和不同来源分数的特点,使得整个搜索引擎可以非常方便的随时增减相关因素的信息和分数模块,使得整个搜索系统的搭建更加方便、灵活和快捷。本实施例中的键值对储存和前后端分类模式,使得在网络服务端可以随时测试或者优化不同的用于排序的机器学习模型,所以使最终的排序模型更加的灵活。且后端只负责处理数据存入redis数据库,而前端决定是否使用某一类数据或者如何使用(权重比例)该类数据。即使后端因为某种原因没有进行相应的数据处理工作,前端依然可以正确工作。使得前后端分类模式使得系统扩展性和稳定性得到进一步提升。且由于采用的是基于内存存储redis数据库,使得查询过程更加迅速。因此,本实施例提供的该架构的搜索引擎,能够更加方便的处理不同来源的信息,随时根据需要增加或者删减相关因素的信息和分数,使得搭建和修改搜索架构更加方便和灵活。本发明实施例还提供一种如图1b所示的搜索实现系统,包括:线下服务器集群、线上服务器集群和高速缓存服务器;所述线下服务器集群,用于根据从来源提取的数据信息生成键值对,并向所述高速缓存服务器传输;所述高速缓存服务器,用于存储所生成的键值对,其中,一种数据信息的来源对应所述高速缓存服务器中的至少一个数据库表;所述线上服务器集群,用于接收用户设备发送的查询词,再根据所述查询词从高速缓存服务器的数据库表中查询键值对,之后根据查询得到的键值对获取数据信息,并对所获取的数据信息进行融合计算;所述高速缓存服务器,还用于向所述线上服务器集群发送键值对的查询结果;所述线上服务器集群,还用于利用融合处理后的结果,得到经过排序的待返回项目,向所述用户设备发送所述待返回项目。在本实施例中,所述线下服务器集群,具体用于从至少2个来源提取数据信息,并通过预设的数据分析模块分析所提取的数据信息,得到分析结果,其中,所述预设的数据分析模块采用hadoop或者spark的分析手段;再将所述分析结果以键值对的形式储存至redis数据库的数据库表中;其中,所述至少2个来源包括:用于存储商品信息的商品信息库、用于对数据信息进行分数计算的分数计算模块,和用于处理搜索词的搜索词(query)分析模块。在本实施例中,所述线下服务器集群,具体用于根据所述分析结果生成no-sql形式的键值对;并将所述no-sql形式的键值对存储至redis数据库的数据库表中其中,所述分析结果至少包括:来源于所述商品信息库的商品信息,来源于所述分数计算模块的基于文字分析的分数、基于用户反馈信息的分数、基于商品流行度的分数、基于商铺信息的分数和基于词语/文本向量(word2vec)的分数,来源于所述搜索词分析模块的针对搜索词(query)的解析结果。在本实施例中,所述线上服务器集群,具体用于从所述高速缓存服务器的数据库表中确定对应所述查询词的数据库表;并根据所确定的数据库表中的键值对获取数据信息,通过算分模型对所获取的数据信息进行加分和减分综合计算,再根据计算结果得到所述待返回项目;和,根据融合处理后的数据信息,计算得到每个待返回项目的相关性分数;并按照相关性分数对待返回项目进行排序,将经过排序的待返回项目返回所述用户设备。本发明基于键值对储存(key-valuestore)的架构模型,采用基于集群分布式计算(hadoop,spark)等数据处理手段,不仅实现了分析处理商品的文字信息,同时还融合了商品流行度以及用户反馈等信息,将不同来源的信息和分数,以no-sql的键值对形式,储存在高速缓存服务(redis数据库)不同的表中,并且建立前端网络服务(web-service)将不同来源的信息和分数进行融合和计算,返回给用户排序好的相关商品序列。本实施例中采用集群分布式计算,使用基于云的(cloud_based)数据处理,因此系统扩容非常容易,只需要申请添加集群节点即可。又由于电子商品的特殊性,对商品进行排序不能只基于文字匹配,本实施例使得系统可以非常方便的加入用户信息反馈分数,商品流行度分数等不同的因素模块,使得搜索结果更加准确合理。而以no-sql的键值对储存商品不同信息和不同来源分数的特点,使得整个搜索引擎可以非常方便的随时增减相关因素的信息和分数模块,使得整个搜索系统的搭建更加方便、灵活和快捷。本实施例中的键值对储存和前后端分类模式,使得在网络服务端可以随时测试或者优化不同的用于排序的机器学习模型,所以使最终的排序模型更加的灵活。且后端只负责处理数据存入redis数据库,而前端决定是否使用某一类数据或者如何使用(权重比例)该类数据。即使后端因为某种原因没有进行相应的数据处理工作,前端依然可以正确工作。使得前后端分类模式使得系统扩展性和稳定性得到进一步提升。且由于采用的是基于内存存储redis数据库,使得查询过程更加迅速。因此,本实施例提供的该架构的搜索引擎,能够更加方便的处理不同来源的信息,随时根据需要增加或者删减相关因素的信息和分数,使得搭建和修改搜索架构更加方便和灵活。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1