一种面向实时大数据搜索引擎的实现方法技术

技术编号:14339648 阅读:209 留言:0更新日期:2017-01-04 12:11
本发明专利技术公开了一种面向实时大数据搜索引擎的实现方法,涉及搜索引擎技术领域。基于HTTP和Apache Lucene,构建ROSE搜索引擎系统;创建ROSE搜索引擎系统的索引,索引创建好后,用户可以输入查询条件对文件信息进行检索,当用户输入查询条件时,首先进行文本分析,然后从索引数据库查询索引,最后将得到的结果返回给用户。该方法能够很好的完成实时流数据的全文搜索功能,并和分布式系统共同完成计算任务,充分利用集群的高速运算和存储,提高数据分析处理的响应速度。

【技术实现步骤摘要】

本专利技术涉及搜索引擎
,尤其涉及一种面向实时大数据搜索引擎的实现方法
技术介绍
很多网络应用程序都涉及到海量数据的分析处理,一般格式化的海量数据存储在数据库,非格式化数据以文件形式存储,或者是以数据库和文件形式混合存储。当数据库和文件系统遇到上TB数据甚至更大的数据量,其分析处理速度将变得非常慢,响应速度不能满足用户的需求。传统的网络应用系统架构,主要有C/S模式(或B/S),S是指Server(服务器端),B指Browser(浏览器端),C指Client(客户端),两者之前区别只在于主要业务逻辑是放在客户端还是放在服务器端。如图1所示,以C/S模式为例,客户端通过UI,与用户交互产生的数据一般会通过网络方式提交给服务器进行业务处理,处理后的业务数据会存储在数据库或文件系统中,等待二次运用,比如数据查询、统计和数据挖掘等操作。该架构在大数据(通常指TB级的数据量)情况下,数据的分析处理瓶颈主要集中在数据库和文件系统的I/O,内存和CPU处理能力等,会导致系统响应太慢甚至无法响应,而且这种系统通常不具备可扩展性,增加存储和计算资源并不能提高其性能。ApacheHadoop分布式计算系统是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的数据。其主要解决数据量问题,在处理大数据量的存储和简单计算问题上有优势。适合于海量数据文件的批处理任务,不适合实时性要求高的场景,不适合用户操作,修改数据频繁的场景。
技术实现思路
本专利技术所要解决的技术问题是提供一种面向实时大数据搜索引擎的实现方法,该方法能够很好的完成实时流数据的全文搜索功能,并和分布式系统共同完成计算任务,充分利用集群的高速运算和存储,提高数据分析处理的响应速度。实现了实时大数据的可扩展的分析处理,系统产生的数据不需要先存储,可被直接实时处理及被反映到响应结果中。为解决上述技术问题,本专利技术所采取的技术方案是:一种面向实时大数据搜索引擎的实现方法,包括以下实现步骤:1)基于HTTP和ApacheLucene,构建ROSE搜索引擎系统;2)创建ROSE搜索引擎系统的索引,通过对各种格式的文档信息以及数据库数据进行信息抽取,并根据文件类型选择不同的文本分析器进行文本分析,创建索引,生成索引数据库;3)索引创建好后,用户可以输入查询条件对文件信息进行检索,当用户输入查询条件时,首先进行文本分析,然后从索引数据库查询索引,最后将得到的结果返回给用户。进一步优化的技术方案为所述的步骤2)中创建索引的步骤包括以下步骤:A、指定创建索引的目录;B、创建Directory对象;C、创建写索引文件对象IndexWriter;D、获取源文件的File数组以确定索引内容;E、用循环将每个文件写入索引,首先创建Document对象和Field对象,分别代表数据库表中的一行数据和该行中的列属性;然后将Field加入到Document中,最后由IndexWriter调用函数addDocument将文档索引写到索引数据库中;F、关闭写索引对象IndexWriter。进一步优化的技术方案为所述的步骤2)中检索的步骤包括以下步骤:A、创建读索引对象IndexReader;B、创建搜索对象IndexSearcher;C、创建词法分析对象Analyer;D、创建语法分析对象QueryParserE、QueryParser调用parser进行语法分析,生成查询语法树,将其放到Query中;F、IndexSearcher调用search方法对查询语法树Query进行搜索,得到结果集TopDocs;G、根据TopDocs获取相应的ScoreDoc;H、根据ScoreDoc获取相应Document文档;I、根据Document获取相应的Field属性。进一步优化的技术方案为ROSE搜索引擎系统设置有标准的http接口来实现对数据的索引的增加、删除、修改、查询。进一步优化的技术方案为ROSE搜索引擎系统可通过Zookeeper快速建立起集群,并根据当前的索引记录的ID值做hash操作后根据服务器中维护的集群的相关状态去查找hash值在哪一个Range中,找到对应的shard;在该shard中leader中建立索引,直到Leader节点更新结束完成,最后将版本号和文档转发给同属一个Shard的replicas节点。采用上述技术方案所产生的有益效果在于:本专利技术有以下优点:(1)支持实时流数据的全文检索ROSE主要基于HTTP和ApacheLucene实现,能够很好的完成实时流数据的全文搜索功能;能够查询到刚刚数据库中改动的字段,如对数据库中的某一个表实现insert一条或者多条数据,他能够实时的对刚才增加插入的数据创建索引。而且其允许通过唯一键查找任何文档的最新版本数据,并且不需要重新打开searcher。(2)支持基于实时流数据的分析处理ROSE不单单支持实时流数据的全文搜索,而且还支持对搜索到的数据进行分析处理。ROSE能够在搜索关键字的同时能够按照Facet的字段进行分组并统计,它并不会修改查询结果信息,只是在查询结果上根据分类添加count信息,然后用户根据count信息做进一步的查询。(3)可扩展的用于全文检索的插件体系ROSE能够集成一些插件来实现一些特定的功能,包括KAnalyzer,mmseg4j来实现全文搜索的中文分词功能,也可集成solr_pagerlai来实现全文搜索之后的搜素分页功能。可扩展的插件体系使得ROSE更加快速和便捷。附图说明图1是传统的网络应用系统架构图;图2是本专利技术ROSE搜索引擎系统结构图;图3是本专利技术ROSE搜索引擎系统的体系架构图;图4是本专利技术索引创建和搜索过程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图2所示,本专利技术公开了一种面向实时大数据搜索引擎的实现方法,包括以下实现步骤:1)基于HTTP和ApacheLucene,构建ROSE(Real-timeOceanDataSearchEngine)搜索引擎系统;2)创建ROSE搜索引擎系统的索引,通过对各种格式的文档信息以及数据库数据进行信息抽取,并根据文件类型选择不同的文本分析器进行文本分析,创建索引,生成索引数据库;3)索引创建好后,用户可以输入查询条件对文件信息进行检索,当用户输入查询条件时,首先进行文本分析,然后从索引数据库查询索引,最后将得到的结果返回给用户。创建索引的步骤包括以下步骤:(参考图3和图4)A、指定创建索引的目录;B、创建Directory对象;C、创建写索引文件对象IndexWriter;D、获取源文件的File数组以确定索引内容;E、用循环将每个文件写入索引,首先创建Document对象和Field对象,分别代表数据库表中的一行数据和该行中的列属性;然后将Field加入到Document中,最后由IndexWriter调用函数addDocument将文本文档来自技高网...
一种面向实时大数据搜索引擎的实现方法

【技术保护点】
一种面向实时大数据搜索引擎的实现方法,其特征在于:包括以下实现步骤:1)基于HTTP和Apache Lucene,构建ROSE搜索引擎系统;2)创建ROSE搜索引擎系统的索引,通过对各种格式的文档信息以及数据库数据进行信息抽取,并根据文件类型选择不同的文本分析器进行文本分析,创建索引,生成索引数据库;3)索引创建好后,用户可以输入查询条件对文件信息进行检索,当用户输入查询条件时,首先进行文本分析,然后从索引数据库查询索引,最后将得到的结果返回给用户。

【技术特征摘要】
1.一种面向实时大数据搜索引擎的实现方法,其特征在于:包括以下实现步骤:1)基于HTTP和ApacheLucene,构建ROSE搜索引擎系统;2)创建ROSE搜索引擎系统的索引,通过对各种格式的文档信息以及数据库数据进行信息抽取,并根据文件类型选择不同的文本分析器进行文本分析,创建索引,生成索引数据库;3)索引创建好后,用户可以输入查询条件对文件信息进行检索,当用户输入查询条件时,首先进行文本分析,然后从索引数据库查询索引,最后将得到的结果返回给用户。2.根据权利要求1所述的一种面向实时大数据搜索引擎的实现方法,其特征在于:所述的步骤2)中创建索引的步骤包括以下步骤:A、指定创建索引的目录;B、创建Directory对象;C、创建写索引文件对象IndexWriter;D、获取源文件的File数组以确定索引内容;E、用循环将每个文件写入索引,首先创建Document对象和Field对象,分别代表数据库表中的一行数据和该行中的列属性;然后将Field加入到Document中,最后由IndexWriter调用函数addDocument将文档索引写到索引数据库中;F、关闭写索引对象IndexWriter。3.根据权利要求1所述的一种面向实时大数据搜索引擎的实现方法,其特征在于:所述的步骤2)中检索的...

【专利技术属性】
技术研发人员:张剑
申请(专利权)人:深圳市网安计算机安全检测技术有限公司
类型:发明
国别省市:广东;44

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

1