一种基于Sphinx的大数据快速检索方法技术

技术编号:38198316 阅读:10 留言:0更新日期:2023-07-21 16:36
本发明专利技术涉及数据处理技术领域,具体涉及一种基于Sphinx的大数据快速检索方法,包括将数据存在Sphinx支持的数据源中,并将数据导入到Sphinx的索引中;使用Sphinx的索引器对数据进行索引,得到索引表;构建对检索数据库的搜索逻辑、检索接口和系统构架,得到索引结构;对索引结构进行性能调优,得到最优索引结构;使用最优索引结构基于检索条件和索引表从数据源中进行检索,得到搜索结果;构建搜索结果的展示模型,并结合Sphinx的聚合功能对展示模型进行优化,得到最终模型。当索引条件为多个时,把几个查询做成一个批处理,然后在一个请求里提交,从而提高了检索速度,解决了传统的方法的检索速度较慢的问题。检索速度较慢的问题。检索速度较慢的问题。

【技术实现步骤摘要】
一种基于Sphinx的大数据快速检索方法


[0001]本专利技术涉及数据处理
,尤其涉及一种基于Sphinx的大数据快速检索方法。

技术介绍

[0002]信息检索是用户进行信息查询和获取的主要方式,是查找信息的方法和手段。当查询条件为两个及其以上时,传统的结构化查询语言(StructuredQuery Language,SQL)方法要么运行两个查询,要么对每个搜索结果集创建一个临时表,从而降低了检索的速度。

技术实现思路

[0003]本专利技术的目的在于提供一种基于Sphinx的大数据快速检索方法,旨在解决传统的方法的检索速度较慢的问题。
[0004]为实现上述目的,本专利技术提供了一种基于Sphinx的大数据快速检索方法,包括以下步骤:
[0005]将数据存在Sphinx支持的数据源中,并将所述数据导入到Sphinx的索引中;
[0006]使用Sphinx的索引器对所述数据进行索引,得到索引表;
[0007]构建对所述检索数据库的搜索逻辑、检索接口和系统构架,得到索引结构;
[0008]对所述索引结构进行性能调优,得到最优索引结构;
[0009]使用所述最优索引结构基于检索条件和所述索引表从所述数据源中进行检索,得到搜索结果;
[0010]构建所述搜索结果的展示模型,并结合Sphinx的聚合功能对所述展示模型进行优化,得到最终模型。
[0011]其中,所述Sphinx支持的数据源包括MySQL数据库和PostgreSQL数据库。<br/>[0012]其中,所述构建对所述检索数据库的搜索逻辑,包括:
[0013]基于所述所述检索数据库构建搜索逻辑,并结合Sphinx的搜索功能对所述搜索逻辑进行优化。
[0014]其中,所述搜索逻辑包括搜索关键词、过滤条件和排序方式;
[0015]所述搜索功能包括模糊匹配、权重设置和全文检索。
[0016]其中,所述检索接口包括查询语法、结果排序和过滤器。
[0017]其中,所述系统构架包括单机版和分布式版。
[0018]其中,所述性能调优包括索引结构优化和查询优化。
[0019]其中,所述聚合功能包括分组统计和日期范围查询。
[0020]本专利技术的一种基于Sphinx的大数据快速检索方法,通过将数据存在Sphinx支持的数据源中,并将所述数据导入到Sphinx的索引中;使用Sphinx的索引器对所述数据进行索引,得到索引表;构建对所述检索数据库的搜索逻辑、检索接口和系统构架,得到索引结构;对所述索引结构进行性能调优,得到最优索引结构;使用所述最优索引结构基于检索条件
和所述索引表从所述数据源中进行检索,得到搜索结果;构建所述搜索结果的展示模型,并结合Sphinx的聚合功能对所述展示模型进行优化,得到最终模型。当所述索引条件为多个时,sphinx用一个multi

query机制来完成这项任务。不是一个接一个地发起查询,而是把几个查询做成一个批处理,然后在一个请求里提交,从而提高了检索速度,解决了传统的方法的检索速度较慢的问题。
附图说明
[0021]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是本专利技术提供的一种基于Sphinx的大数据快速检索方法的流程图。
[0023]图2是对显示模型进行显示的流程图。
具体实施方式
[0024]下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。
[0025]请参阅图1至图2,本专利技术提供一种基于Sphinx的大数据快速检索方法,包括以下步骤:
[0026]S1将数据存在Sphinx支持的数据源中,并将所述数据导入到Sphinx的索引中;
[0027]具体的,将要检索的数据存储在Sphinx支持的数据源中,如MySQL,并使用Sphinx提供的工具将数据导入到Sphinx的索引中。所述Sphinx支持的数据源包括MySQL数据库和PostgreSQL数据库。
[0028]Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如Java,PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
[0029]Sphinx单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。
[0030]高速索引(在新款CPU上,近10MB/秒);高速搜索(2

4G的文本量中平均查询速度不到0.1秒);高可用性(单CPU上最大可支持100GB的文本,100M文档);提供良好的相关性排名支持分布式搜索;提供文档摘要生成;提供从MySQL内部的插件式存储引擎上搜索支持布尔,短语,和近义词查询;支持每个文档多个全文检索域(默认最大32个);支持每个文档多属性;支持断词;支持单字节编码与UTF

8编码
[0031]S2使用Sphinx的索引器对所述数据进行索引,得到索引表;
[0032]具体的,使用Sphinx的索引器将预处理好的数据进行索引,以便能够进行快速搜
索。索引的过程可以是增量的或者全量的,可以根据实际情况进行选择。
[0033]S3构建对所述检索数据库的搜索逻辑、检索接口和系统构架,得到索引结构;
[0034]具体的,所述构建对所述检索数据库的搜索逻辑,包括:
[0035]基于所述所述检索数据库构建搜索逻辑,并结合Sphinx的搜索功能对所述搜索逻辑进行优化。所述搜索逻辑包括搜索关键词、过滤条件和排序方式;所述搜索功能包括模糊匹配、权重设置和全文检索。采用API调用,如使用PHP、java等的API函数或方法查询。优点是可不必对mysql重新编译,服务端进程“低耦合”,且程序可灵活、方便的调用,根据具体需求设计搜索逻辑,搜索关键词、过滤条件、排序方式等,同时结合Sphinx支持的高级搜索功能,如模糊匹配、权重设置、全文检索等,进一步优化搜索效果。
[0036]所述检索接口包括查询语法、结果排序和过滤器。根据实际需求,设计检索接口,包括查询语法、结果排序、过滤器等等本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Sphinx的大数据快速检索方法,其特征在于,包括以下步骤:将数据存在Sphinx支持的数据源中,并将所述数据导入到Sphinx的索引中;使用Sphinx的索引器对所述数据进行索引,得到索引表;构建对所述检索数据库的搜索逻辑、检索接口和系统构架,得到索引结构;对所述索引结构进行性能调优,得到最优索引结构;使用所述最优索引结构基于检索条件和所述索引表从所述数据源中进行检索,得到搜索结果;构建所述搜索结果的展示模型,并结合Sphinx的聚合功能对所述展示模型进行优化,得到最终模型。2.如权利要求1所述的基于Sphinx的大数据快速检索方法,其特征在于,所述Sphinx支持的数据源包括MySQL数据库和PostgreSQL数据库。3.如权利要求2所述的基于Sphinx的大数据快速检索方法,其特征在于,所述构建对所述检索数...

【专利技术属性】
技术研发人员:查海童浩洋
申请(专利权)人:南京云朵朵网络科技有限公司
类型:发明
国别省市:

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

1