一种基于Elasticsearch的异构多数据源的高效搜索引擎方法技术

技术编号:28941917 阅读:13 留言:0更新日期:2021-06-18 21:47
本发明专利技术公开一种基于Elasticsearch的异构多数据源的高效搜索引擎方法。对时空对象数据库(关系型数据库和非关系型数据库)、分布式文件系统和信息资源管理系统中的信息实现异构、多数据源的高效全文搜索方法。该搜索引擎由索引数据库、索引文档结构、数据采集器和搜索接口四部分组成。包括如下步骤:首先,数据采集器采集系统中需要搜索的内容数据,并将内容数据组织构建为对应的索引文档;然后将构建的索引文档存储到索引数据库中;最后通过搜索接口进行搜索查询。本发明专利技术可将企业级不同类型的、多个数据源的数据汇聚到一个系统,为数据融合分析提供支撑。

【技术实现步骤摘要】
一种基于Elasticsearch的异构多数据源的高效搜索引擎方法
本专利技术涉及信息搜索
,特别是涉及一种基于Elasticsearch的异构多数据源的高效搜索引擎方法。
技术介绍
目前,商用搜索引擎如百度等根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索的相关信息展示给用户。由搜索器、索引器、检索器和用户接口四个部分组成。搜索器的功能是在互联网中漫游,发现和搜集信息。索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表。检索器的功能是根据用户的查询在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。用户接口的作用是输入用户查询、显示查询结果、提供用户相关性反馈机制。对于企业级用户,自有的信息资源包括多种类型。例如某地理信息系统企业,管理多粒度时空对象库,管理的对象包含多粒度时空对象的时空参考、空间位置、空间形态、关联关系、组成结构、行为和认知能力、属性特征等多个方面,这些信息存放在PostgreSQL、MySQL、MongoDB等多种数据库,以及分布式文件系统HDFS中,还包括企业网站展示的信息资源等。显然,时空对象数据库不具备快速查询所有这些资源中所需信息的能力,这一问题亟需解决。
技术实现思路
为了能在时空对象数据库系统、分布式文件系统和信息资源管理系统的基础上实现多数据源的高效搜索,解决数据库不具备的搜索能力,本专利技术提供了一种基于Elasticsearch的异构多数据源的高效搜索引擎方法,具体技术方案如下:一种基于Elasticsearch的异构多数据源的高效搜索引擎方法,包括索引数据库、索引文档、数据采集器和搜索接口四部分组成,数据采集器的采集系统中需要搜索的内容数据,并将内容数据组织构建为对应的索引文档,然后,将构建的索引文档存储到索引数据库中,最后,用户通过搜索接口进行搜索查询;所述索引数据库Elasticsearch与关系型数据库或非关系型数据库配合使用,利用Elasticsearch的实时搜索和分析功能,使用Elasticsearch-Hadoop(ES-Hadoop)连接器,处理Hadoop数据库中的大量数据;所述索引文档结构采用Elasticsearch支持的索引文档类型JSON,通过Elasticsearch可以将时空对象创建索引文档,JSON数据文档格式,搜索引擎支持索引的文档内容类型包括多粒度时空对象和集成开发框架资源服务中包含的资源,通过对这两种数据内容创建JSON对象,构建文档索引,每一个对象作为一个JSON文档,并建立索引;所述数据采集器采集系统需要搜索的内容数据,并将内容数据组织构建为对应的索引文档,通过定时任务,主动定时抓取多粒度时空对象、集成开发框架资源服务中的数据进行文档存储。所述搜索接口用于接收用户通过用户终端发起的搜索请求,并根据所述搜索请求从所述索引数据库获取相应的搜索结果以返回给所述用户终端,用户通过引擎接口,进行搜索、查询等操作,提供的引擎接口主要是根据关键字搜索,支持将搜索结果按照用户指定的次序排序显示,并提供搜索相关性反馈机制。具体步骤如下:第一步,数据采集器采集系统中需要搜索的内容数据,通过定时任务,主动定时抓取多粒度时空对象数据库、分布式文件系统、资源管理信息系统中的数据,其中,定时任务通过内部时间戳记录每次抓取时间,判断当前抓取的数据是否进行解析处理。若各数据源中的数据更新时间早于上次抓取时间,则不做处理;若各数据源中的数据更新时间晚于上次抓取时间,则抓取相关内容,进入第二步,抓取的方法是,针对不同的数据源,构建不同的微服务,先与数据源建立连接,分别采用与数据源匹配的访问接口,抓取数据源中的数据;第二步,对抓取的数据进行解析处理,将内容数据组织构建为对应的索引文档,从不同数据源中抓取的数据,按照数据源所对应的索引,生成相应索引下的索引文档,一般一条数据库记录生成一个索引文档;第三步,将构建的索引文档存储到索引数据库Elasticsearch集群中。为满足高并发的访问,集群数目大于一个,Elasticsearch会对所有的字段建立索引,经过处理后写入一个反向索引。查找数据时,直接查找该索引;最后,用户通过搜索接口进行搜索查询,将查询条件转换成Elasticsearch查询请求,下发到Elasticsearch中进行查询。搜索接口支持按关键字搜索,支持多个搜索关键字,以及多个关键字的逻辑运算,将搜索匹配到的结果按一定的顺序输出,用户可选择排序的规则,并提供搜索相关性反馈机制。进一步的,所述索引数据库和索引文档采用Elasticsearch搜索引擎。进一步的,所述Elasticsearch基于数据内容实现复杂的搜索查询,只需要将数据添加/更新到Elasticsearch中。进一步的,索引数据库中还包括Spark,所述Spark通过ES-Hadoop从Elasticsearch中读取数据,数据库作为持久化存储组件,能够提供约束限制、准确性保证、鲁棒性条件。进一步的,所述定时任务通过内部时间戳记录每次抓取时间,判断当前抓取的数据是否进行索引存储。采用上述技术方案,具有如下有益效果:Elasticsearch是一种开源的全文搜索引擎,它可以快速地储存、搜索和分析海量数据。Elasticsearch允许多台服务器协同工作,每台服务器可以运行多个Elasticsearch实例,一组实例构成一个集群。本专利技术基于Elasticsearch对企业级信息资源进行快速全文搜索,包括各种类型的数据库(关系型数据库和非关系型数据库),分布式文件系统,信息资源管理系统等。附图说明图1为本专利技术的搜索引擎结构图;图2为本专利技术数据采集器结构图;图3为本专利技术数据采集定时任务处理机制图。具体实施方式实施例1:如图1-3所示的一种基于Elasticsearch的异构多数据源的高效搜索引擎方法,包括索引数据库、索引文档、数据采集器和搜索接口四部分组成,数据采集器的采集系统中需要搜索的内容数据,并将内容数据组织构建为对应的索引文档,然后,将构建的索引文档存储到索引数据库中,最后,用户通过搜索接口进行搜索查询;所述索引数据库Elasticsearch与关系型数据库或非关系型数据库配合使用,利用Elasticsearch的实时搜索和分析功能,使用Elasticsearch-Hadoop(ES-Hadoop)连接器,处理Hadoop数据库中的大量数据;所述索引文档结构采用Elasticsearch支持的索引文档类型JSON,通过Elasticsearch可以将时空对象创建索引文档,JSON数据文档格式,搜索引擎支持索引的文档内容类型包括多粒度时空对象和集成开发框架资源服务中包含的资源,通过对这两种数据内容创建JSON对象,构建文档索引,每一个本文档来自技高网...

【技术保护点】
1.一种基于Elasticsearch的异构多数据源的高效搜索引擎方法,其特征在于,包括索引数据库、索引文档、数据采集器和搜索接口四部分组成,数据采集器的采集系统中需要搜索的内容数据,并将内容数据组织构建为对应的索引文档,然后,将构建的索引文档存储到索引数据库中,最后,用户通过搜索接口进行搜索查询;/n所述索引数据库Elasticsearch与关系型数据库或非关系型数据库配合使用,利用Elasticsearch的实时搜索和分析功能,使用Elasticsearch-Hadoop(ES-Hadoop)连接器,处理Hadoop数据库中的大量数据;/n所述索引文档结构采用Elasticsearch支持的索引文档类型JSON,通过Elasticsearch可以将时空对象创建索引文档,JSON数据文档格式,搜索引擎支持索引的文档内容类型包括多粒度时空对象和集成开发框架资源服务中包含的资源,通过对这两种数据内容创建JSON对象,构建文档索引,每一个对象作为一个JSON文档,并建立索引;/n所述数据采集器采集系统需要搜索的内容数据,并将内容数据组织构建为对应的索引文档,通过定时任务,主动定时抓取多粒度时空对象、集成开发框架资源服务中的数据进行文档存储;/n所述搜索接口用于接收用户通过用户终端发起的搜索请求,并根据所述搜索请求从所述索引数据库获取相应的搜索结果以返回给所述用户终端,用户通过引擎接口,进行搜索、查询等操作,提供的引擎接口主要是根据关键字搜索,支持将搜索结果按照用户指定的次序排序显示,并提供搜索相关性反馈机制;/n具体步骤如下:/n第一步,数据采集器采集系统中需要搜索的内容数据,通过定时任务,主动定时抓取多粒度时空对象数据库、分布式文件系统、资源管理信息系统中的数据,其中,定时任务通过内部时间戳记录每次抓取时间,判断当前抓取的数据是否进行解析处理。若各数据源中的数据更新时间早于上次抓取时间,则不做处理;若各数据源中的数据更新时间晚于上次抓取时间,则抓取相关内容,进入第二步,抓取的方法是,针对不同的数据源,构建不同的微服务,先与数据源建立连接,分别采用与数据源匹配的访问接口,抓取数据源中的数据;/n第二步,对抓取的数据进行解析处理,将内容数据组织构建为对应的索引文档,从不同数据源中抓取的数据,按照数据源所对应的索引,生成相应索引下的索引文档,一般一条数据库记录生成一个索引文档;/n第三步,将构建的索引文档存储到索引数据库Elasticsearch集群中。为满足高并发的访问,集群数目大于一个,Elasticsearch会对所有的字段建立索引,经过处理后写入一个反向索引。查找数据时,直接查找该索引;/n最后,用户通过搜索接口进行搜索查询,将查询条件转换成Elasticsearch查询请求,下发到Elasticsearch中进行查询。搜索接口支持按关键字搜索,支持多个搜索关键字,以及多个关键字的逻辑运算,将搜索匹配到的结果按一定的顺序输出,用户可选择排序的规则,并提供搜索相关性反馈机制。/n...

【技术特征摘要】
1.一种基于Elasticsearch的异构多数据源的高效搜索引擎方法,其特征在于,包括索引数据库、索引文档、数据采集器和搜索接口四部分组成,数据采集器的采集系统中需要搜索的内容数据,并将内容数据组织构建为对应的索引文档,然后,将构建的索引文档存储到索引数据库中,最后,用户通过搜索接口进行搜索查询;
所述索引数据库Elasticsearch与关系型数据库或非关系型数据库配合使用,利用Elasticsearch的实时搜索和分析功能,使用Elasticsearch-Hadoop(ES-Hadoop)连接器,处理Hadoop数据库中的大量数据;
所述索引文档结构采用Elasticsearch支持的索引文档类型JSON,通过Elasticsearch可以将时空对象创建索引文档,JSON数据文档格式,搜索引擎支持索引的文档内容类型包括多粒度时空对象和集成开发框架资源服务中包含的资源,通过对这两种数据内容创建JSON对象,构建文档索引,每一个对象作为一个JSON文档,并建立索引;
所述数据采集器采集系统需要搜索的内容数据,并将内容数据组织构建为对应的索引文档,通过定时任务,主动定时抓取多粒度时空对象、集成开发框架资源服务中的数据进行文档存储;
所述搜索接口用于接收用户通过用户终端发起的搜索请求,并根据所述搜索请求从所述索引数据库获取相应的搜索结果以返回给所述用户终端,用户通过引擎接口,进行搜索、查询等操作,提供的引擎接口主要是根据关键字搜索,支持将搜索结果按照用户指定的次序排序显示,并提供搜索相关性反馈机制;
具体步骤如下:
第一步,数据采集器采集系统中需要搜索的内容数据,通过定时任务,主动定时抓取多粒度时空对象数据库、分布式文件系统、资源管理信息系统中的数据,其中,定时任务通过内部时间戳记录每次抓取时间,判断当前抓取的数据是否进行解析处理。若各数据源中的数据更新时间早于上次抓取时间,则不做处理;若各数据源中的数据更新时间晚于上次抓取时间,则抓取相关内容,进入第二步,抓取的方法是,针对不同的数据源...

【专利技术属性】
技术研发人员:刘小春张亚军姚亮李坡
申请(专利权)人:苏州中科蓝迪软件技术有限公司
类型:发明
国别省市:江苏;32

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

1