产品白皮书
# 引言
# 概述
随着互联网的高速发展,数据量指数型增长,面对数据爆炸场景下的数据查找和检索需求,使用传统数据库已无法满足快速、准确信息检索需求,因此全文搜索引擎应运而生。全文搜索引擎是一种处理非结构化文本数据的技术,通过对大规模文本数据进行索引和搜索,为用户提供快速、准确的信息检索能力。与传统数据库相比,全文搜索引擎具有高效的搜索速度、灵活的查询语法、强大的扩展性和丰富的文本处理功能。它能够在海量文本数据中快速找到相关信息,满足不同的搜索需求,并应对数据爆炸式增长的挑战。
随着互联网的快速发展,创造了大量的文本数据,如网页、文档、日志等,这些数据包含了知识的宝库,但又因为数量庞大、复杂多样而难以有效利用。全文搜索引擎的出现填补了这一空白,提供了一个高效、准确、便捷的信息检索工具。全文搜索引擎通过建立倒排索引等高效的数据结构和算法,将文本数据中的每个词语与出现该词语的文档进行关联,从而实现快速定位和检索相关文档的功能。
在当今信息爆炸的时代,全文搜索引擎充分发挥了其优势,成为处理海量文本数据的重要工具,它让海量信息不再被束缚,更好地利用信息,推动了信息技术的发展。
# 产品介绍
# 产品概述
金蝶Apusic全文检索软件(Apusic Search Engine,简称“ASE”)是一个分布式、高扩展、高实时的搜索与数据分析引擎。ASE能够快速地搜索和分析大量的数据,支持全文搜索、聚合、过滤等多种查询方式,能够满足各种不同的搜索和分析需求。
# 产品发展历程
- 2016年12月,ASE产品规划和技术论证。
- 2017年2月,ASE产品研发立项。
- 2017年12月1日,ASE发布beta版本。
- 2017年12月29日,ASE正式发布1.0版本,并取得产品著作权。
- 2021年1月4日,ASE产品架构重构完成。
- 2023年12月15日,基于Opensearch发布1.0版本。
- 2024年至今,基于Opensearch产品迭代,新增产品功能和插件、优化产品性能。
# 产品介绍
金蝶Apusic全文检索软件(Apusic Search Engine,简称“ASE”)是一款高性能、高可扩展性、高实时性的搜索与数据分析引擎。ASE支持分布式部署,可以快速地搜索和分析大量的数据,包括全文搜索、结构化查询、地理位置查询、聚合分析和自动补全等多种查询方式。此外,ASE还支持自动补全、近似搜索、聚合分析等功能,可以帮助用户更加方便地进行数据探索和数据挖掘,是替代Elasticsearch的完美选择。
# 面向的客户
- 企业和组织: 包括电子政务、社交网络、电子商务等各类企业和组织,ASE可提供高性能、可扩展的搜索和分析解决方案。
- 数据科学家和分析师: ASE的聚合功能和灵活的查询语言使数据科学家和分析师能够进行复杂的数据分析和可视化工作。
- 开发者和技术人员: ASE提供了简单易用的API和丰富的功能,使开发者和技术人员能够轻松构建和管理搜索和分析引擎。
# 产品架构
# 概述
金蝶Apusic全文检索软件(ASE)的功能架构由REST API接口、传输管理、搜索、聚合、分析、索引、集群管控和存储与管理模块组成,能满足大规模分布式集群的高效协作,又能满足用户快速搜索需求。其功能架构图如下:
REST API接口
ASE提供简单易用的REST API接口,用户可以通过HTTP请求进行数据的查询和操作。API接口使用标准的HTTP方法(如GET、POST、PUT、DELETE)来实现对数据的增删改查操作,以及其他功能的调用。
传输管理
ASE使用异步IO事件驱动的方式进行数据传输管理,提高用户查询数据的响应时效。同时,ASE支持访问安全控制,可以通过身份验证和授权机制来保护数据的安全性。此外,ASE还支持协商通信协议,根据客户端和服务器的能力,选择最佳的通信协议进行数据传输,以提高传输效率。
搜索
ASE具备强大的搜索引擎功能,能够解析用户的查询请求,并优化用户的搜索内容。经过优化的查询请求会被传递给执行引擎,该引擎会在索引数据库中进行高效检索,并返回相应的结果。此外,ASE还提供了结果评分机制,可以根据相关性或其他标准对搜索结果进行排序,从而为用户提供更加精准和满意的搜索体验。
聚合
ASE支持聚合功能,可以对搜索结果进行聚合操作。聚合功能可以根据特定的条件对搜索结果进行分组、计数、统计等操作,并返回聚合后的结果。聚合功能可以帮助用户更好地理解和分析搜索结果,提取有用的信息。
分析
ASE提供了强大的分析功能,可以对字符串数据进行预处理、分析和过滤等操作。分析功能可以通过分词、去除停用词、词干提取等技术,对文本数据进行处理,并提取关键信息。分析功能可以帮助用户更好地理解和挖掘数据中的隐藏信息。
索引
ASE具有高效的索引功能,可以对数据进行索引,并管理索引的分片等数据。索引功能使用倒排索引等数据结构来支持快速搜索,可以在大规模数据集上进行高效的检索。同时,ASE还支持动态索引和分片的功能,可以根据数据量自动调整索引和分片数量,以保证查询性能和扩展性。
集群
ASE支持构建高性能和高可用的分布式集群。集群功能包括集群节点管理、集群服务发现等,可以实现多个节点间的数据共享和负载均衡,提高系统的性能和可靠性。集群功能可以根据实际需求灵活扩展,以适应不同规模和工作负载的需求。
存储与管理
ASE使用底层文件数据结构进行数据的存储和管理。存储与管理功能包括数据的持久化、备份和恢复等,以确保数据的安全性和可靠性。同时,ASE还支持存储在大数据集群中,可以利用分布式存储技术来管理大规模数据集,提高系统的容量和性能。
# 核心功能
- 分布式搜索:ASE使用倒排索引技术来实现分布式搜索,它将文档的关键词映射到对应文档的ID上,以实现快速检索。同时,ASE还支持多种搜索方式,例如全文搜索、模糊搜索、精确搜索等,可满足不同的搜索需求。
- 分布式数据存储: ASE使用分布式架构来存储和管理数据,将数据分散到多个节点上,以提高性能和可扩展性。每个节点都可以存储部分数据,并且可以自动进行负载均衡和数据迁移,以保证数据的平衡和一致性。
- 强大的查询语言: ASE支持强大的查询语言,包括全文搜索、过滤器、聚合等功能。此外,ASE还支持复杂查询操作,例如布尔运算、范围查询、正则表达式等,以满足各种复杂的查询需求。
- 实时数据分析: ASE支持实时数据分析和聚合操作,通过使用聚合框架可以计算各种指标、生成报表和可视化数据。此外,ASE还支持时间序列数据和地理位置数据的处理和分析。
- 自动索引和扩展:ASE具有自动索引和扩展的功能,可以自动检测和分配新的节点,以平衡负载和增加容量。此外,ASE还支持动态索引和分片的功能,可以根据数据量自动调整索引和分片数量。
- 多种数据类型支持:ASE支持多种数据类型,包括文本、数值、日期、地理位置等。它提供了专门的数据类型和相关的查询语法,以满足不同数据类型的处理需求。
- 高可用性和故障恢复: ASE具有高可用性和故障恢复机制,可以在节点故障或数据丢失的情况下自动恢复,并确保数据的可靠性和持久性。ASE还支持多副本机制和备份机制,以保证数据的安全性和可靠性。
# 关键技术特性
- 分布式架构: ASE分布式架构可以实现数据的水平扩展和负载均衡,同时提高系统的可靠性和容错性。ASE采用分片技术将数据划分为多个分片,并将每个分片分配到不同的节点上,同时ASE还使用gossip协议来自动管理集群节点的扩缩容,当有新的节点加入或离开集群时,自动进行重新分配和负载均衡。
- 分布式搜索与聚合: ASE使用分布式查询和聚合的算法,将用户的查询和聚合操作分发到各个节点上并行执行,然后将结果合并返回给用户。这种方式可以加速搜索和聚合操作,提高系统的响应速度和吞吐量。
- 实时数据同步: ASE通过使用分布式事务日志和复制机制来确保数据在不同节点之间的实时同步。当有数据更新操作时,ASE会将更新操作记录到事务日志中,并通过复制机制将这些更新操作应用到其他节点上,以保持数据的一致性和完整性。
- 安全性和权限控制: ASE具备安全性和权限控制的功能,可以对用户进行认证和授权,限制其对数据和操作的访问权限。ASE还支持数据加密,可以对数据进行加密保护,确保数据在传输和存储过程中的安全性。
- 高性能: ASE底层基于Lucene,具备强大的搜索能力,面对PB级别数据依然能实现秒级搜索。
# 应用场景
# 全文检索
ASE内置的智能过滤与聚合工具显著增强了信息处理能力,使其能够从海量数据中高效提取有价值的內容。通过整合关键字、短语及模糊搜索等多种算法,ASE能够迅速定位并检索出相关的文档和数据片段。这一先进的全文搜索技术专为实现精准信息检索而设计,确保用户轻松快捷地获取所需信息。
# 搜索引擎
ASE作为高性能搜索引擎,凭借其分布式架构,实现系统的高可用和可伸缩。同时,ASE集成Lucene库技术、实时索引更新、倒排索引、智能分词与分析、强大的查询语言DSL、动态映射管理、智能化相关性评分等功能,实现数据的快速搜索、查询、分析和统计,可支撑企业大规模数据搜索与分析业务的落地。
# 日志分析
ASE支持海量数据的存储和查询,可通过关键字、短语和模糊搜索等操作快速定位符合条件的日志数据,提升业务系统的日志分析效率。同时,ASE还提供过滤和聚合功能,可对日志数据进行统计、计算和分析,生成汇总数据,实现快速统计和可视化日志数据,进一步提高业务系统对日志数据的高效分析能力。
# 数据存储系统
ASE全面适应各类数据库技术需求,集成了持久化存储与完整的增删改查操作,确保数据操作的灵活性与可靠性。ASE不仅支持多种数据结构,可适应复杂业务场景,还内置了强大的聚合引擎,提供包括均值、总和、极值及分组分析在内的多样化统计功能,满足数据库统计与分析的需求。同时,结合ASE实时索引技术,ASE能即时响应数据变化,满足高实时性应用场景。
# 运行环境
# 软硬件环境
操作系统: Linux系统,包括UOS、KylinV10、OpenEuler、CentOS、Ubuntu
CPU:4核及以上,支持x86和ARM架构
内存:8G或以上
硬盘:512GB或以上
网络:千兆或以上
# 总结
金蝶Apusic全文检索软件(ASE)是一款分布式、高性能、高可扩展性的搜索与数据分析引擎,可为用户提供了高效、灵活的搜索与数据分析解决方案。
ASE具备分布式搜索、分布式数据存储、实时数据分析、自动索引和扩展、多种数据类型支持等核心功能。它采用了分布式架构,能够处理大规模的数据以及高并发的搜索和分析请求。
ASE还具有安全性和权限控制的功能,同时提供高性能和高可用性的服务。它可以应用于全文检索、搜索引擎、日志分析、数据库系统等多个领域。