首页> 中国专利> 一种道路客运站点的快速模糊查询方法及系统

一种道路客运站点的快速模糊查询方法及系统

摘要

本发明公开了一种道路客运站点的快速模糊查询方法及系统,该方法包括:建立站点数据结构;搭建分布式文档数据库,将建立的站点数据结构存储在所述分布式文档数据库中;获取用户输入的站点查询信息,将站点查询信息输入至所述分布式文档数据库进行模糊查询,得到相关的站点信息。本发明实现了大数据量站点查询过程中,符合旅客使用习惯的多条件查询。

著录项

  • 公开/公告号CN114969152A

    专利类型发明专利

  • 公开/公告日2022-08-30

    原文格式PDF

  • 申请/专利权人 交通运输通信信息集团有限公司;

    申请/专利号CN202210551849.2

  • 发明设计人 郝岩;胡刚;张鹏;陈本锡;夏敏;

    申请日2022-05-18

  • 分类号G06F16/2458(2019.01);G06F16/22(2019.01);G06F16/27(2019.01);G06F16/29(2019.01);

  • 代理机构北京安度修典专利代理事务所(特殊普通合伙) 11424;北京安度修典专利代理事务所(特殊普通合伙) 11424;

  • 代理人杨方成;马欢萍

  • 地址 100094 北京市海淀区上庄乡中国交通通信信息中心卫星地面站

  • 入库时间 2023-06-19 16:36:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-16

    实质审查的生效 IPC(主分类):G06F16/2458 专利申请号:2022105518492 申请日:20220518

    实质审查的生效

说明书

技术领域

本发明涉及数据查询技术领域,特别地涉及一种一种道路客运站点的快速模糊查询方法及系统。

背景技术

近年来,随着道路客运的不断发展,全国已经有几千个客运站能够进行互联网售票,同时与之匹配的是几十万的到达站信息,每个站点又有所归属的区县和城市。在旅客进行网上购票时,往往不了解自己要出发或者到达的具体站点,仅仅知道出发到达的城市或者区县,旅客在查询中,会使用站到站、站到区县、站到城市、城市到站、城市到区县、城市到城市、区县到区县、区县到站、区县到城市九种查询方式,同时站-区县-城市存在着上下级归属关系。面对如此庞大的数据,但客运班次的出发到达信息仅仅只和出发站点和到达站点关联,如何能够在多条件下实现站点的快速检索变得尤为困难。

目前站点查询技术主要有以下几种:

1、直接使用数据库进行查询:该技术适用于数据量小,并发较小的情况,但是当数据量达到几十万时查询效率低下,需要大量的硬件资源来维持查询效率。

2、使用key/value的快速检索数据库进行查询:该技术适用于查询条件单一的情况,如果查询条件超过两个及以上时,无法进行条件查询,同时无法进行数据归类查询。

3、适用内存进行查询:该技术适用于并发较小的情况,单机的内存存在资源瓶颈,如果多机部署,又存在数据同步不一致的情况。内存查询还存在如果宕机数据丢失的情况。

现有的站点查询技术多是适用于站点量较小的场景下,数据库的查询在硬件资源有限的情况下,很难支撑起高并发情况下的几十万数据的多条件查询。Key/value数据库在现有查询的应用上有无法支撑使用场景,需要将九种查询的方式都存储起来,如果有某一站点属性有变化,就需要对所有相关数据进行更新,维护困难。适用内存查询存在着数据安全问题,即使定期进行硬件备份,也会存在部分数据丢失的情况,同时内存里维护如此大的数据需要的内存资源很大,如果进行分布式部署又存在多端维护的情况,造成运维压力。

发明内容

有鉴于此,本发明提出一种道路客运站点的快速模糊查询方法及系统,通过独特的数据结构设计实现数据属性的检索和应用;通过开合理的查询方式设计,实现在有限硬件资源,大量站点的情况下,在高并发的场景中,旅客多条件的站点查询。

本发明第一方面提出一种道路客运站点的快速模糊查询方法,该方法包括:建立站点数据结构;搭建分布式文档数据库,将建立的站点数据结构存储在所述分布式文档数据库中;获取用户输入的站点查询信息,将站点查询信息输入至所述分布式文档数据库进行模糊查询,得到相关的站点信息。

进一步的,所述站点数据结构包括出发站点数据结构和到达站点数据结构。

进一步的,所述出发站点数据结构包括出发站点的基础数据、区划信息以及特殊配置信息;所述出发站点的基础数据包括出发站站码、出发站拼音全称、出发站拼音简称、出发站名称、出发站所属市级及出发站站点基础信息;所述出发站点的区划信息包括出发站区划码、出发站所属区划及出发站站点区划信息。

进一步的,所述到达站点数据结构包括到达站点的基础数据、区划信息以及特殊配置信息;其中,所述到达站点的基础数据包括到达站站码、到达站拼音全称、到达站拼音简称、到达站名称、到达站所属市级及到达站站点基础信息;其中,所述到达站点的区划信息包括到达站区划码、到达站所属区划及到达站站点区划信息。

进一步的,所述用户输入的站点查询信息包括站点的相关拼音与相关字符。将站点的相关拼音与相关字符输入至所述分布式文档数据库,通过所述分布式文档数据库进行模糊查询,得到第一站点信息;所述将站点的相关拼音与相关字符输入至所述分布式文档数据库,通过所述分布式文档数据库进行模糊查询,得到第一站点信息的步骤包括:获取站点的名称,将站点的名称转换为包含站点汉字名称、站点全拼拼音、站点首字母拼音的多维数据结构;建立多维数据的倒排索引结构;利用多维数据的倒排索引结构,将站点的相关拼音与相关字符作为条件在站点汉字、站点全拼、站点拼音首字母三个站点维度进行并发搜索,得到三个站点维度对应的站点信息;对三个站点维度对应的站点信息进行合并去重,得到第一站点信息。

进一步的,所述用户输入的站点查询信息包括站点的区划名称与区划相关拼音,将站点的区划名称与区划相关拼音输入至所述分布式文档数据库,通过所述分布式文档数据库关联站点的基础数据进行模糊查询,得到第二站点信息;所述将站点的区划名称与区划相关拼音输入至所述分布式文档数据库,通过所述分布式文档数据库关联站点的基础数据进行模糊查询,得到第二站点信息的步骤包括:获取站点所在区划名称,将站点所在区划名称转换为包含区划汉字名称、区划全拼拼音、区划首字母拼音的多维数据结构;建立多维数据的倒排索引结构;利用多维数据的倒排索引结构,将站点的区划名称与区划相关拼音作为条件在区划汉字、区划全拼、区划拼音首字母三个维度进行并发搜索,得到三个区划维度对应的站点信息;对三个区划维度对应的站点信息进行合并去重,得到第二站点信息。

进一步的,所述用户输入的站点查询信息包括站点的城市名称与区划相关拼音,将站点的城市名称与区划相关拼音输入至所述分布式文档数据库,通过所述分布式文档数据库关联站点的基础数据进行模糊查询,得到第三站点信息;所述将站点的城市名称与区划相关拼音输入至所述分布式文档数据库,通过所述分布式文档数据库关联站点的基础数据进行模糊查询,得到第三站点信息的步骤包括:获取站点所在城市汉字名称,将站点所在城市汉字名称转换为包含城市汉字名称、城市全拼拼音、城市首字母拼音的多维数据结构;建立多维数据的倒排索引结构;利用多维数据的倒排索引结构,将站点的城市名称与区划相关拼音作为条件在城市汉字、城市全拼、城市拼音首字母三个城市维度进行并发搜索,得到三个城市维度对应的站点信息;对三个城市维度对应的站点信息进行合并去重,得到第三站点信息。

进一步的,该道路客运站点的快速模糊查询方法还包括:基于所述第一站点信息、第二站点信息及第三站点信息,建立三级树形结构。

本发明第二方面提供一种道路客运站点的快速模糊查询系统,该系统包括:数据建立模块,用于建立站点数据结构;数据库搭建模块,用于搭建分布式文档数据库,将建立的站点数据结构存储在所述分布式文档数据库中;数据查询模块,用于获取用户输入的站点查询信息,将站点查询信息输入至所述分布式文档数据库,模糊查询到相关的站点信息。

上述的道路客运站点的快速模糊查询方法,通过建立站点数据结构,构建分布式文档数据库,获取用户输入的多条件站点查询信息,通过分布式文档数据库模糊查询到相关的站点信息,实现了大数据量站点查询过程中,符合旅客使用习惯的多条件查询。

附图说明

为了说明而非限制的目的,现在将根据本发明的优选实施例、特别是参考附图来描述本发明,其中:

图1是本发明一实施例提出的一种道路客运站点的快速模糊查询方法的流程图;

图2是本发明一实施例提出的ES分布式文档数据库的示意图;

图3是本发明一实施例提出的一种道路客运站点的快速模糊查询系统的结构示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

图1是本发明一实施例提出的一种道路客运站点的快速模糊查询方法的流程图。该道路客运站点的快速模糊查询方法通过构建的分布式文档数据库进行模糊查询站点的相关信息。

请参阅图1,该道路客运站点的快速模糊查询方法包括以下步骤:

S100,建立站点数据结构。

由于道路客运站点信息往往是由各地的客运企业进行编制,因此存在着不统一的情况,在这种情况下,同一站点在出发和到达两种情况下存在着信息不一致的问题。为此,本实施例建立了两类数据结构,包括出发站点数据结构和到达站点数据结构。

其中,出发站点数据结构包括出发站点的基础数据、区划信息以及特殊配置信息。

在本实施例中,出发站点的基础数据包括出发站站码、出发站拼音全称、出发站拼音简称、出发站名称、出发站所属市级及出发站站点基础信息等。

在本实施例中,出发站点的区划信息包括出发站区划码、出发站所属区划及出发站站点区划信息等。

通过本实施例建立的出发站点数据结构,可以快速、模糊查询到相关出发站站点信息。

其中,到达站点数据结构包括到达站点的基础数据、区划信息以及特殊配置信息。

在本实施例中,到达站点的基础数据包括到达站站码、到达站拼音全称、到达站拼音简称、到达站名称、到达站所属市级及到达站站点基础信息等。

在本实施例中,到达站点的区划信息包括到达站区划码、到达站所属区划及到达站站点区划信息等。

通过本实施例建立的到达站点数据结构,可以快速、模糊查询到相关到达站站点信息。

S200,搭建分布式文档数据库,将建立的站点数据结构存储在分布式文档数据库中。

本实施例搭建ES分布式文档数据库,该ES分布式文档数据库中每个字段均可被索引,而且每个字段的数据均可被搜索,能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。另一方面,增加更多的服务器来完成系统扩展,称为水平扩展或者向外扩展(Horizontal Scale/Scaling Out)。ES分布式文档数据库能够利用更强劲的硬件,能够水平扩展,通过向集群中添加更多的节点来分担负载,增加可靠性。ES分布式文档数据库能够管理多个节点来完成扩展和实现高可用性。

图2是ES分布式文档数据库的结构示意图。如图2所示,ES分布式文档数据库包括从下往上依次分布的存储层、管理层、索引层、发现层及交互层。

其中,存储层包括存储模块(Gateway)。该“存储模块(Gateway)”代表ES索引的持久化存储方式。在Gateway中,ES默认先把索引存储在内存中,然后当内存满的时候,再持久化到Gateway里。当ES集群关闭或重启的时候,它就会从Gateway里去读取索引数据。

其中,管理层包括索引文件管理模块(DistributedLucene Directory)。该“索引文件管理模块(DistributedLucene Directory)”是Lucene里的一些列索引文件组成的目录,主要负责管理这些索引文件,包括数据的读取、写入,以及索引的添加和合并等。

其中,索引层包括数据源模块(River)、映射模块(Mapping)、搜索模块(SearchMoudle)、索引模块(Index Moudle)。“数据源模块(River)”代表是数据源,是以插件的形式存在于ES中。“映射模块(Mapping)”类似于静态语言中的数据类型,不仅能够告诉ES哪个字段是哪种类型。还能告诉ES如何来索引数据,以及数据是否被索引到等。“搜索模块(SearchMoudle)”支持搜索的一些常用操作。“索引模块(Index Moudle)”支持索引的一些常用操作。

其中,发现层包括发现模块(Disvcovery)和语言模块(Scripting)。“发现模块(Disvcovery)”主要是负责集群的master节点发现,比如某个节点突然离开或进来的情况进行一个分片重新分片等。这里有个发现机制。发现机制默认的实现方式是单播和多播的形式即Zen同时也支持点对点的实现。另外一种是以插件的形式即EC2。“语言模块(Scripting)”包括很多脚本语言,如mvel、js、python等。

其中,交互层包括交互模块(Transport)。“交互模块(Transport)”代表ES内部节点代表跟集群的客户端交互,包括Thrift、Memcached、Http等协议。

本实施例搭建的ES分布式文档数据库提供了持久化的多类型数据存储、搜索、统计等功能。

S300,获取用户输入的站点查询信息,将站点查询信息输入至分布式文档数据库,模糊查询到相关的站点信息。

在本实施例中,用户输入的站点查询信息包括站点的相关拼音与相关字符。将站点的相关拼音与相关字符输入至分布式文档数据库,通过分布式文档数据库进行模糊查询,得到第一站点信息。

其中,将站点的相关拼音与相关字符输入至分布式文档数据库,通过分布式文档数据库进行模糊查询,得到第一站点信息的具体实现方式如下:

S301-1,获取站点的名称,将站点的名称转换为包含站点汉字名称、站点全拼拼音、站点首字母拼音的多维数据结构,并建立多音字识别库。

在站点数据载入到查询系统时,从站点的相关拼音与相关字符中获取站点的名称,通过汉字拼音算法将站点名称转换为包含站点汉字名称、站点全拼拼音、站点首字母拼音的多维数据结构。并建立多音字识别库,对可能出现的例如“乐亭”中的“乐”字、“蚌埠”中的“蚌”字等多音字进行单独注音。

S301-2,建立多维数据的倒排索引结构。

利用上述多维数据结构,把以站点汉字名称作为索引的数据结构进一步扩展,建立多维数据的倒排索引结构。

S301-3,利用多维数据的倒排索引结构,将站点的相关拼音与相关字符作为条件在站点汉字、站点全拼、站点拼音首字母三个站点维度进行并发搜索,得到三个站点维度对应的站点信息。

S301-4,对三个站点维度对应的站点信息进行合并去重,得到第一站点信息。

在用户进行查询时,在输入框中输入汉字、拼音全拼、拼音首字母进行搜索后。利用上述建立的倒排索引,将用户输入数据作为条件在站点汉字、站点全拼、站点拼音首字母三个维度进行并发搜索。对这三个维度中各自命中的站点信息进行合并去重,返回给用户。

在本实施例中,用户输入的站点查询信息包括站点的区划名称与区划相关拼音。将站点的区划名称与区划相关拼音输入至分布式文档数据库,通过分布式文档数据库关联站点的基础数据进行模糊查询,得到第二站点信息。

其中,将站点的区划名称与区划相关拼音输入至分布式文档数据库,通过分布式文档数据库关联站点的基础数据进行模糊查询,得到第二站点信息的具体实现方式如下:

S302-1,获取站点所在区划名称,将站点所在区划名称转换为包含区划汉字名称、区划全拼拼音、区划首字母拼音的多维数据结构,并建立多音字识别库。

首先在站点数据载入到查询系统时,在站点属性信息中获取站点所在区划汉字名称。通过汉字拼音算法将区划名称转换为包含区划汉字名称、区划全拼拼音、区划首字母拼音的多维数据结构。并利用上述站点查询中的多音字识别库,对可能出现的多音字进行单独注音。

S302-2,建立多维数据的倒排索引结构。

利用上述多维数据结构,把以区划汉字名称作为索引的数据结构进一步扩展,建立多维数据的倒排索引。

S302-3,利用多维数据的倒排索引结构,将站点的区划名称与区划相关拼音作为条件在区划汉字、区划全拼、区划拼音首字母三个区划维度进行并发搜索,得到三个区划维度对应的站点信息。

S302-4,对三个区划维度对应的站点信息进行合并去重,得到第二站点信息。

在用户进行查询时,在输入框中输入汉字、拼音全拼、拼音首字母进行搜索后。利用上述建立的倒排索引,将用户输入的站点的区划名称与区划相关拼音作为条件在区划汉字、区划全拼、区划拼音首字母三个维度进行并发搜索。对这三个维度中各自命中的区划信息进行合并去重,返回给用户。

在本实施例中,用户输入的站点查询信息包括站点的城市名称与区划相关拼音,将站点的城市名称与区划相关拼音输入至分布式文档数据库,通过分布式文档数据库关联站点的基础数据进行模糊查询,得到第三站点信息。

其中,将站点的城市名称与区划相关拼音输入至分布式文档数据库,通过分布式文档数据库关联站点的基础数据进行模糊查询,得到第三站点信息的具体实现过程如下:

S303-1,获取站点所在城市汉字名称,将站点所在城市汉字名称转换为包含城市汉字名称、城市全拼拼音、城市首字母拼音的多维数据结构,并建立多音字识别库。

首先在站点数据载入到查询系统时,在站点的城市名称与区划相关拼音中获取站点所在城市汉字名称。通过汉字拼音算法将城市名称转换为包含城市汉字名称、城市全拼拼音、城市首字母拼音的多维数据结构。并利用上述站点查询中的多音字识别库,对可能出现的多音字进行单独注音。

S303-2,建立多维数据的倒排索引结构。

利用上述多维数据结构,把以城市汉字名称作为索引的数据结构进一步扩展,建立多维数据的倒排索引。

S303-3,利用多维数据的倒排索引结构,将站点的城市名称与区划相关拼音作为条件在城市汉字、城市全拼、城市拼音首字母三个城市维度进行并发搜索,得到三个城市维度对应的站点信息。

S302-4,对三个城市维度对应的站点信息进行合并去重,得到第三站点信息。

在用户进行查询时,在输入框中输入汉字、拼音全拼、拼音首字母进行搜索后。利用上述建立的倒排索引,将站点的城市名称与区划相关拼音作为条件在城市汉字、城市全拼、城市拼音首字母三个维度进行并发搜索。对这三个维度中各自命中的城市信息进行合并去重,返回给用户。

在本实施例中,为了更加方便旅客的查询习惯。对上述站点、区划、城市的三种搜索进行了整合。即用户在同一搜索框输入汉字或者字母时,会同时对站点、区划和城市进行同步搜索。

其中对于三类已经合并去重的数据,包括第一站点信息、第二站点信息和第三站点信息,基于第一站点信息、第二站点信息和第三站点信息,建立三级树形结构。根据站点属性中所属区划的编码,将站点作为区划的叶子结点;根据区划属性中所属的城市编码,将区划作为城市的叶子结点。最终形成以城市-区划-站点的三级树形数据,返回给用户。在用户查看数据时,能够根据数据级别更加快速和精准的定位自己想要查询的信息。

上述的道路客运站点的快速模糊查询方法,通过建立站点数据结构,构建分布式文档数据库,获取用户输入的多条件站点查询信息,通过分布式文档数据库模糊查询到相关的站点信息,实现了大数据量站点查询过程中,符合旅客使用习惯的多条件查询。

采用上述的道路客运站点的快速模糊查询方法,通过站点、区县以及地市的多种模糊查询下,能够保证不超过100ms的延迟。

图3是本发明另一实施方式提出的一种道路客运站点的快速模糊查询系统的结构示意图。

在本实施例中,所述道路客运站点的快速模糊查询系统100可以应用于计算机装置中,所述道路客运站点的快速模糊查询系统100可以包括多个由程序代码段所组成的功能模块。所述道路客运站点的快速模糊查询系统100中的各个程序段的程序代码可以存储于计算机装置的存储器中,并由所述计算机装置的至少一个处理器所执行,以实现(详见图1描述)道路客运站点的快速模糊查询功能。

本实施例中,所述道路客运站点的快速模糊查询系统100根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:

数据建立模块101,用于建立站点数据结构;

数据库搭建模块102,用于搭建分布式文档数据库,将建立的站点数据结构存储在所述分布式文档数据库中;

数据查询模块103,用于获取用户输入的站点查询信息,将站点查询信息输入至所述分布式文档数据库,模糊查询到相关的站点信息。

本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能不再赘述。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号