一种酒店搜索方法及系统技术方案

技术编号:23764335 阅读:29 留言:0更新日期:2020-04-11 19:02
本发明专利技术涉及一种酒店搜索方法,该方法包括以下步骤:步骤S1:数据监控组件监控数据库中的酒店数据变动;步骤S2:变动的酒店数据存储于缓存中间件;步骤S3:计算组件从缓存中间件得到变动的酒店数据,计算新的酒店数据;步骤S4:信息推送组件推送新的酒店数据至搜索引擎,酒店数据中的酒店价格数据在搜索引擎中以数组形式存储;步骤S5:基于新的酒店数据和搜索引擎,完成酒店搜索。与现有技术相比,能有效地在小成本、大数据量的情况下准确提供酒店信息的搜索方案;且充分考虑了横向扩展性。

A hotel search method and system

【技术实现步骤摘要】
一种酒店搜索方法及系统
本专利技术涉及电子商务领域,尤其是涉及一种酒店搜索方法及系统。
技术介绍
随着电子商务的发展,越来越多的企业都会引入互联网工具,用于提升企业的效率,目前在OTA(在线旅游)、酒店行业,企业都会提供一个网站或者APP供用户预订酒店,而在酒店预订的整个流程中,搜索作为第一步,也是最重要的一步。具体搜索的实现,每家企业根据自身的规模、数据量等,都会有各自的解决方案。现有大部分OTA或在线酒店预订网站,关于酒店搜索,或使用自建倒排索引、或使用数据库直接查询、或使用开源的全文搜索引擎等方案来完成,但这些方案均有比较显著的缺陷,比如某著名OTA,就是使用自建倒排索引的方法,确定能够在大数据量下做到信息的实时和准确性,且搜索速度很快,但这种手段,需要上百台高内存服务器,成本太高,一年的成本需要突破千万;而一些小的酒店,因为只售卖自己品牌的酒店,直接使用数据库查询的方式,在酒店数量扩充后,会有很大的性能问题;还有一些中型公司或OTA,使用单一的开源的全文搜索引擎来解决,这种方案虽然在数据量大的时候,可以保持较好性能的问题,但对于数据的准确性,根本无法保证,因为全文搜索引擎一般是用来做静态数据存储的,对于酒店这种包含n个房型,且每房型价格1天n变的情况,根本无法支持。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种酒店搜索方法及系统。本专利技术的目的可以通过以下技术方案来实现:一种酒店搜索方法,该方法包括以下步骤:步骤S1:数据监控组件监控数据库中的酒店数据变动;步骤S2:变动的酒店数据存储于缓存中间件;步骤S3:计算组件从缓存中间件得到变动的酒店数据,计算新的酒店数据;步骤S4:信息推送组件推送新的酒店数据至搜索引擎,酒店数据中的酒店价格数据在搜索引擎中以数组形式存储;步骤S5:基于新的酒店数据和搜索引擎,完成酒店搜索。所述的数组大小为5400。所述酒店价格数据P为:P=p真/1000000+(d-1)*30+I其中,p真为酒店价格真实数据,I为住宿天数,d为入住日期与当前日期的天数差。从所述的数组中存取酒店价格数据时下标的计算公式为:(day*30+I-1)%5400其中,day为入住日期与1970-01-01的天数差。所述的步骤S1和步骤S2包括:数据监控组件监控数据库中的酒店数据变动;数据监控组件提取变动的酒店数据并判断缓存中间件中是否存在变动的酒店数据的数据类型,若不存在,数据监控组件生成该数据类型,使缓存中间件增加该数据类型并存储变动的酒店数据,若存在,使缓存中间件更新该数据类型的数值。所述的步骤S3包括:步骤S31:计算组件从缓存中间件得到一个变动的酒店数据;步骤S32:判断该数据是否存在关联酒店数据,若存在,计算新的关联酒店数据和该变动的酒店数据的新的酒店数据,并更新新的关联酒店数据和新的酒店数据至搜索引擎,若不存在,得到该变动的酒店数据的新的酒店数据,并更新新的酒店数据至搜索引擎;步骤S33:判断是否还存在变动的酒店数据,若存在,重复步骤S31至S33,若不存在,计算组件休眠1分钟后执行步骤S33。所述的缓存中间件为非关系型数据库,所述计算组件的计算资源匮乏时,监控组件对相同数据类型的变动的酒店数据进行合并,且仅保留时间点最近的变动的酒店数据。所述的搜索引擎为Elasticsearch。所述的非关系型数据库为Redis。一种实现所述的酒店搜索方法的酒店搜索系统,包括数据监控组件:用于监控数据库中的酒店数据变动;缓存中间件:用于存储酒店数据计算过程中的数据,以及变动的酒店数据;计算组件:用于计算新的酒店数据;信息推送组件:用于推送新的酒店数据至搜索引擎;搜索引擎:用于供客户端进行酒店搜索。与现有技术相比,本专利技术具有以下优点:(1)使用搜索引擎+数据库+缓存中间件+特定算法(特定存储方法)等多种技术,能有效地在小成本、大数据量(酒店数量超过100万)的情况下准确提供酒店信息的搜索方案;且充分考虑了横向扩展性,当数据量再进一步增大时,只需要对计算组件的服务器进行横向扩充即可,无需再做进一步的调整和设计。(2)酒店数据中的酒店价格数据在搜索引擎中以数组形式存储,数组大小为5400,结合酒店价格实际数据到存储数据的转换以及下标的计算,有效解决了实际中酒店价格的变动、住宿时长的不确定以及存储、排序等问题。(3)缓存中间件为非关系型数据库,可利用非关系型数据库的存储方式进行合并存储。附图说明图1为本专利技术的流程图;图2为本专利技术酒店数据计算的架构;图3为本专利技术酒店数据计算的流程图;图4为本专利技术监控组件的工作流程图;图5为本专利技术计算组件的工作流程图;图6为本专利技术推送组件的工作流程图;图7为本专利技术的总体架构图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。实施例A、本实施例提供一种酒店搜索方法,如图1所示,包括以下步骤:步骤S1:数据监控组件监控数据库中的酒店数据变动;步骤S2:变动的酒店数据存储于缓存中间件;步骤S3:计算组件从缓存中间件得到变动的酒店数据,计算新的酒店数据;步骤S4:信息推送组件推送新的酒店数据至搜索引擎,酒店数据中的酒店价格数据在搜索引擎中以数组形式存储;步骤S5:基于新的酒店数据和搜索引擎,完成酒店搜索。B、本实施例还提供一种实现酒店搜索方法的酒店搜索系统,其架构为:该架构主要由两部分组成,酒店数据计算和酒店搜索服务(见图7),其中:1.酒店数据计算用于监控数据库中酒店价格、房态、信息等酒店数据的变动,然后将变动的酒店数据进行整合与计算,推送至酒店搜索服务,酒店数据计算总共包括4个组件构件,如图2所示,其中每个组件的作用分别如下:201数据监控组件:用于监控实际数据库中的酒店数据变动;202缓存中间件,本实施例采用Redis存储:用于存储酒店数据计算过程中的数据,以及变动的酒店数据;203计算组件:用于计算新的酒店数据,重新组装数据;204信息推送组件:推送具体计算完的新的酒店数据,包含酒店价格、房态、信息等去酒店搜索服务。2.酒店搜索服务负责存储最新的酒店数据,然后提供搜索接口,供APP或PC等具体的客户端调用,提供实时准确的价格、房态等酒店数据,本实施例的酒店搜索服务基于ElasticSearch搜索引擎。C、具体而言,本实施例提供的酒店搜索方法有两个关键点:本实施例酒店搜索服务采用ElasticSearch搜索引擎,Elastic本文档来自技高网...

【技术保护点】
1.一种酒店搜索方法,其特征在于,该方法包括以下步骤:/n步骤S1:数据监控组件监控数据库中的酒店数据变动;/n步骤S2:变动的酒店数据存储于缓存中间件;/n步骤S3:计算组件从缓存中间件得到变动的酒店数据,计算新的酒店数据;/n步骤S4:信息推送组件推送新的酒店数据至搜索引擎,酒店数据中的酒店价格数据在搜索引擎中以数组形式存储;/n步骤S5:基于新的酒店数据和搜索引擎,完成酒店搜索。/n

【技术特征摘要】
1.一种酒店搜索方法,其特征在于,该方法包括以下步骤:
步骤S1:数据监控组件监控数据库中的酒店数据变动;
步骤S2:变动的酒店数据存储于缓存中间件;
步骤S3:计算组件从缓存中间件得到变动的酒店数据,计算新的酒店数据;
步骤S4:信息推送组件推送新的酒店数据至搜索引擎,酒店数据中的酒店价格数据在搜索引擎中以数组形式存储;
步骤S5:基于新的酒店数据和搜索引擎,完成酒店搜索。


2.根据权利要求1所述的一种酒店搜索方法,其特征在于,所述的数组大小为5400。


3.根据权利要求2所述的一种酒店搜索方法,其特征在于,所述酒店价格数据P为:
P=p真/1000000+(d-1)*30+I
其中,p真为酒店价格真实数据,I为住宿天数,d为入住日期与当前日期的天数差。


4.根据权利要求3所述的一种酒店搜索方法,其特征在于,从所述的数组中存取酒店价格数据时下标的计算公式为:
(day*30+I-1)%5400
其中,day为入住日期与1970-01-01的天数差。


5.根据权利要求1所述的一种酒店搜索方法,其特征在于,所述的步骤S1和步骤S2包括:
数据监控组件监控数据库中的酒店数据变动;
数据监控组件提取变动的酒店数据并判断缓存中间件中是否存在变动的酒店数据的数据类型,若不存在,数据监控组件生成该数据类型,使缓存中间件增加该数据类型并存储变动的酒店数据,若存在,使缓存中间件更新该数据类型的数值。<...

【专利技术属性】
技术研发人员:李伟
申请(专利权)人:上海景域文化传播股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1