![搜索引擎](https://elasticsearch.cn/static/common/topic-mid-img.png)
搜索引擎
【搜索客社区日报】第1858期 (2024-07-12)
社区日报 • Fred2000 发表了文章 • 0 个评论 • 2120 次浏览 • 2024-07-12 14:05
搜索型数据库的技术发展历程与趋势前瞻
资讯动态 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 1926 次浏览 • 2024-06-26 13:13
概述
随着数字科技的飞速发展和信息量的爆炸性增长,搜索引擎已成为我们获取信息的首选途径之一,典型的代表厂商如 Google。然而,随着用户需求的不断演变,传统的搜索技术已经无法满足人们对信息的实时性、个性化和多样性的需求。
在企业内部,这种需求更加显著。随着企业数字化转型的持续深化,非结构化数据正日益成为各类组织数据增长的主要来源,也是数据体系中至关重要的组成部分,蕴含着巨大的价值。如何高效地存储和利用非结构化数据的重要性也日益凸显。企业需要更高效地管理和检索内部的海量数据,以支持业务决策和运营需求。
据 IDC 数据预计,到 2025 年,80%的数据将是非结构化数据;而根据 Gartner 的数据显示,从 2019 年到 2024 年,非结构化数据容量预计将增加两倍。然而,目前非结构化数据面临着表现形式多样、管理复杂性高、价值挖掘难度大等诸多挑战。传统的数据库系统往往无法满足企业对实时性和多样性的搜索需求,为了解决这些挑战,以自动分词、倒排索引、相关度计算、向量检索引擎等技术为核心构建的搜索型数据库应运而生。这些数据库自上世纪 90 年代诞生以来不断发展演进,正在成为数据库领域中不可或缺的一个重要分支。
什么是搜索型数据库?
搜索型数据库早期又称全文数据库,或者企业搜索引擎,是一种专门用于存储和管理大规模文本数据,并支持高效的文本搜索和信息检索的数据库系统,不过随着技术不断发展和应用场景日益丰富,目前搜索型数据库不仅仅可以处理长文本数据,也可以处理常见的数值、日期等结构化数据,IP、地理位置信息、图片、音视频等非结构化数据,搜索型数据库的应用范畴不断拓展,正在由支撑业务系统检索加速、IT 运维可观测性、聚合查询分析等向多场景、多模态数据搜索方向发展。
典型的搜索数据库一般具有以下特点:
- 灵活的索引能力:搜索数据库能够处理多种类型的数据,包括文本、图像、音频、视频等非结构化数据。它们采用自动分词、倒排索引等技术,能够高效地处理不同格式和类型的数据,提供灵活的搜索和检索功能。
- 高效的查询性能:搜索数据库具有高效的查询处理能力,能够快速索引和检索大规模的数据。借助优化的索引结构和查询算法,搜索数据库能够在短时间内准确地返回与查询相关的结果,提高用户的搜索效率,常用于解决关系型数据库的高并发检索需求。
- 支持复杂的搜索功能:搜索数据库提供多样化的搜索功能,包括全文检索、模糊搜索、精确搜索、范围搜索、向量搜索、地理信息检索等。用户可以根据不同的需求和场景,灵活地选择和组合不同的搜索功能,以获取符合期望的搜索结果。
- 高性能和可扩展性:搜索数据库具有高性能和可扩展性的特点,能够处理大规模数据和高并发访问。它们采用分布式架构和并行计算技术,实现了水平扩展,能够满足不断增长的数据量和用户访问量的需求。
综上所述,搜索数据库具有处理非结构化数据、实时搜索和更新、多样化的搜索功能、个性化推荐和智能搜索、高性能和可扩展性、全面的搜索结果展示等特点,是处理大规模数据和提供高效搜索服务的重要工具。
搜索型数据库的应用场景
搜索型数据库在各行各业都有广泛的应用,以下是一些典型的应用场景:
- 零售和电商:在零售和电商行业,搜索型数据库被广泛应用于产品搜索和推荐系统中。通过搜索功能,顾客可以轻松查找所需商品,而个性化推荐系统则可以根据用户的搜索历史和行为习惯推荐相关的产品,提高购物体验和交易转化率。
- 医疗保健:在医疗保健行业,搜索型数据库被用于医学文献检索、疾病诊断和药物搜索等方面。医生和研究人员可以利用搜索功能找到相关的医学文献和研究成果,帮助诊断疾病和制定治疗方案。
- 金融服务:在金融服务行业,搜索型数据库被用于金融数据检索、市场分析和投资决策等方面。投资者可以通过搜索功能查找相关的金融数据和市场资讯,帮助他们做出更加准确的投资决策。
- 制造业:在制造业中,搜索型数据库被用于生产过程监控、质量控制和故障诊断等方面。工程师可以利用搜索功能查找相关的生产数据和技术资料,帮助他们解决生产中的问题和挑战。
- 媒体和娱乐:在媒体和娱乐行业,搜索型数据库被用于内容检索、版权管理和用户推荐等方面。用户可以通过搜索功能查找感兴趣的新闻、音乐和视频等内容,而个性化推荐系统则可以根据用户的搜索历史和偏好推荐相关的内容。
- 教育和培训:在教育和培训行业,搜索型数据库被用于学习资源检索、课程管理和学习分析等方面。学生和教师可以利用搜索功能查找相关的学习资源和课程内容,而学习分析系统则可以分析学生的搜索行为和学习表现,为教学提供参考和支持。
- IT 运维可观测性:通过搜索型数据库,可以实时监控系统的运行状况、性能指标和日志数据,帮助运维团队及时发现和解决系统故障、性能问题和异常情况,确保系统的稳定运行。
- 安全监测和威胁检测:利用搜索型数据库对系统的安全日志进行审计和监控,监测用户的访问行为和系统操作,及时发现异常行为和安全事件。同时,搜索型数据库还可以与威胁情报数据集成,对内部日志数据进行关联分析,快速识别并应对各种安全威胁和攻击行为,保障系统和数据的安全。
综上所述,搜索型数据库在各行各业都发挥着重要作用,数据规模从 GB 到 PB 不等,体现在生活中的方方面面,为用户提供了高效、准确和个性化的信息搜索和检索服务,推动了各行业的发展和进步。随着搜索技术的不断创新和发展,搜索型数据库在各行业中的应用将会越来越广泛,并持续为用户带来更加便捷和智能的搜索体验。
搜索型数据库的发展历程
搜索型数据库的发展历程可以概括如下四个阶段:
- 起步阶段(1990 年代):搜索数据库的雏形开始于上世纪 90 年代,当时以全文检索为主要技术手段,最初用于文档检索和网络搜索。典型代表包括 AltaVista、Excite 等。
- 技术突破(2000 年代):随着互联网的快速发展,搜索数据库开始应用于更多领域,如电子商务、社交网络等。Lucene、Sphinx 等开源搜索引擎的出现推动了搜索技术的进步。
- 商业化发展(2010 年代):搜索数据库进入商业化阶段,以 Elasticsearch 等为代表的商业搜索引擎崭露头角。企业开始大规模应用搜索数据库来管理和检索大量数据。
-
智能化转型(2020 年代):随着人工智能技术的发展,搜索数据库逐渐向智能化转型,开始引入机器学习、自然语言处理等技术,提供个性化推荐和智能搜索服务。同时,搜索数据库也在更多领域得到应用,如医疗保健、金融服务等。
综上所述,搜索数据库经历了从起步阶段到技术突破、商业化发展再到智能化转型的发展历程,表明了其在信息检索领域的重要性和不断演进的趋势,不并断推动着搜索技术的进步和应用范围的扩展。随着人工智能技术的不断成熟,搜索数据库将会在智能化、个性化等方面取得更大的进步,为用户提供更加优质的搜索体验。
搜索型数据库的发展情况
搜索型数据库市场上已经有不少成熟的产品和厂商,但是总的来说,搜索型数据库的界限范围有点模糊,当然其他数据库也有同样的问题,有很多数据库既是文档数据库,又是多模态数据库,还是向量数据库等等,而常见的搜索型数据库主要诞生于:
- 由搜索引擎内核库发展而来的搜索数据库,如 Elasticsearch
- 由其他数据库扩展而来的搜索数据库,如 Postgres Full-Text Search
- 从零开始整体设计的搜索数据库:如 INFINI Pizza
通过流行的 DB-Engines 的搜索引擎排行榜,可以初探国外主流的搜索型数据库的流行趋势,如下图:
可以看到 Elastic 公司的 Elasticsearch 还是依旧保持强悍,自从 Elasticsearch 十多年前掀翻了 Splunk 的桌子,硬生生的在日志领域杀出一条新路,随后大杀四方,碾压整个搜索行业,霸榜至今。Elastic 商业化增长稳健,2023 年收入超过 10 亿美金。
OpenSearch 是由 AWS 发起的 Elasticsearch 开源分支,起因是由于 Elastic 针对云厂商采取的协议变更为 Elastic+SSPL,OpenSearch 基于 Apache 2.0 协议的 Elasticsearch 7.10 版本衍生而来,目前也具备了一定的用户基础。
Splunk 是一款用于搜索、监控和分析大规模机器生成的数据的软件平台,主要用于日志和安全分析领域,属于商业闭源产品。2023 年中被思科(Cisco) 以 230 亿美元现金收购,瞬间刷爆朋友圈。另外有意思的是,前四名除了 Splunk,底层都是 Lucene 内核。
MarkLogic 成立于 2001 年,自我定位是一个 NoSQL 多模态数据库厂商,也是商业闭源软件,生态成熟但是系统过于复杂,学习曲线较陡, 2023 年初被 Progress Software 以 3.55 亿美元收购算是一个比较好的结局。
当然了,除了榜上的这些产品,还有很多优秀的挑战者正摩拳擦掌,跃跃欲试。如下面的这些项目: vespa、Rockset、Doris,Clickhouse、quickwit、Pinot、SingleStore、qdrant、milvus、algolia、meilisearch、typesense、Manticore Search 等等。这些项目不一定都是自己定位是搜索型数据库,有侧重在 AI 领域的,有侧重在实时分析领域的等等,可谓各有千秋,不过都具备一定的搜索和分析能力,不出意外,基本上每家都要号称吊打 Elasticsearch 一番。
国内搜索型数据库的发展情况
搜索型数据库已经成为企业事实上的重要基础设施,而国内搜索型数据库的发展近些年也是开始得到重视,2023 年初,由中国信通院云计算与大数据研究所牵头,依托中国通信标准化协会大数据技术标准推进委员会,联合拓尔思、极限科技、星环科技等 30 余家企业编制的《搜索型数据库技术要求》正式出炉,该标准已成为行业内搜索型数据库技术选型和产品开发的风向标,极限科技的 INFINI Easysearch 率先通过了该标准。
墨天轮社区也开辟了搜索型数据库的排行榜,共有 6 家企业的产品上榜:
国内搜索型数据库的市场还在起步阶段,厂商和可选的产品也还比较少,不过随着市场的成熟,相信未来将迎来一波高速的发展。
搜索型数据库的趋势前瞻
技术在演变,场景在演变,数据也在演变,搜索数据库领域的发展也呈现出多个显著的趋势,这些趋势将进一步推动搜索技术的演进和应用范围的扩展。笔者观测到的主要的发展趋势包括以下方向供参考:
1. 趋势一:实时搜索与分析
-
实时搜索是搜索数据库领域的一个重要发展趋势,业务应用都在朝实时方向演进,用户对信息的即时性需求不断增加,要求搜索结果能够及时反映最新的数据和内容。
-
实时搜索技术通过实时索引和实时更新机制,能够实现快速的数据检索和更新,提供与时俱进的搜索结果,满足用户对信息的即时性需求。
- 目前以 Lucene 为内核的搜索型数据库基本上都只能做到 NRT(近实时)搜索,并且频繁更新带来的挑战和资源的浪费比较高,如果能做到更高效的实时性,可以大大提升用户的搜索体验和实时决策能力。
2. 趋势二:多模态混合搜索
-
多模态搜索是指在搜索过程中同时考虑多种信息形式,如文本、图像、视频等,以提高搜索结果的准确性和全面性。
-
这种技术能够通过分析和理解多种信息形式之间的关联性,为用户提供更加全面、丰富的搜索结果,适用于需要综合不同媒体形式的搜索场景。
- 现实世界的数据越来越复杂化,非结构化数据的利用的场景也越来越多,多模态可以为业务提供更加灵活的分析和探索能力,混合搜索的能力非常具有吸引力。
3. 趋势三:AI 智能语义搜索
-
大模型、AI 智能搜索技术的探索可谓是一日千里,通过利用人工智能技术来实现搜索过程中的智能化、语义化和个性化,结合自然语言处理、机器学习等技术分析用户意图,提供更加智能、个性化的搜索服务。
-
随着大模型的兴起,搜索数据库开始采用像 RAG(Retriever-Reader for Generative Question Answering)这样的大型预训练模型来提升搜索的效果。RAG 模型结合了检索器和阅读器的功能,能够实现更加准确和全面的搜索结果,为用户提供更加智能和个性化的搜索服务。
- 搜索型数据库可谓是 AI 落地最好的是试验田,Elasticsearch 通过拥抱 AI 和大模型,目前股价又重回巅峰,可喜可贺。
4. 趋势四:云原生、存算分离、Serverless
-
随着云计算技术的发展,搜索数据库正逐渐向云原生架构转变。云原生搜索数据库利用容器化、微服务架构等技术,实现了更高的灵活性、可扩展性和容错性,为企业提供了更加稳定和高效的搜索服务,并且成本更低,更加弹性。
-
存算分离是搜索数据库发展的另一重要趋势。通过将存储与计算分离,搜索数据库可以更好地适应数据存储和计算需求的变化,提高系统的性能和效率。存算分离技术使得搜索数据库能够实现更高的并发访问和更快的数据处理速度,为用户提供更加流畅和稳定的搜索体验。
- Serverless 提供开箱即用的体验,成本更低,使用更加灵活,也是目前很多搜索服务提供商正在积极探索的方向。
5. 趋势五:增强现实搜索
- 随着增强现实技术的发展,尤其是 Apple 发布的头戴式 Vision Pro,一部革命性的空间运算设备,将数位内容无缝融入实体世界,而搜索技术也将逐渐与增强现实相结合,为用户提供更加直观和沉浸式的搜索体验。增强现实搜索能够将搜索结果与现实世界相结合,结合 AI 技术为用户提供更加个性化和便捷的搜索服务,这是一个全新的领域,也意味着巨大的机会。
6. 趋势六:现代硬件的高效利用
-
现代硬件及软件运行环境已发生翻天覆地的变化, 片上计算,边缘计算,FPGA,DPU,GPU,一台设备几百核上 TB 内存已经成为现实,可运行之上的软件却还是停留在几十年前的架构。 如 Elasticsearch 其核心 Lucene(及类似实现) 是在 1997 建立的,距今已有 27 年了,虽然也在与时俱进,但是部分架构和设计理念已不具备先进性。
- 在现代的硬件上采用更先进的算法,更新的数据结构、更新的设计理论,利用最新的 CPU 指令集,向量化,批处理,充分发挥多核、大内存和 SSD 的优势,从而达到更高的效率,更低的成本,去解决之前不可能实现的问题,大有可为,也是下一代引擎需要关注的方向。
随着各类数据库功能的边界越来越模糊,应用场景高度交叉重叠,市场竞争也变得白热化,不过笔者认为垂直领域的搜索型数据库机会还是很大,而想做大而全的数据库产品已经没有太多的市场生存空间,一定要在垂直领域有特别专注的地方,我们 INFINI Labs 正在基于 Rust 研发的下一代搜索引擎 INFINI Pizza,就侧重于面向终端用户场景,解决海量数据更新情况下,同时满足高并发和低延迟的核心业务实时检索需求。
总结
综上所述,搜索数据库领域正处于快速发展的阶段。随着互联网数据量的不断增长和用户需求的不断变化,搜索数据库技术将不断创新和进步,以满足用户对信息获取的更加即时、个性化和多样化的需求。未来,随着人工智能技术的进一步发展和应用,搜索数据库将会变得更加智能化、普及化和多样化,为用户提供更加高效、准确和个性化的搜索服务,推动互联网信息的更加便捷获取和利用。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
回顾DTC2024大会——聚焦数据技术创新:极限科技创始人曾勇揭秘下一代纯实时搜索引擎 INFINI Pizza
资讯动态 • liaosy 发表了文章 • 0 个评论 • 4056 次浏览 • 2024-04-13 21:54
2024年4月12日至13日,备受瞩目的第十三届“数据技术嘉年华”(DTC2024)在北京新云南皇冠假日酒店盛大开幕。本次大会由中国DBA联盟(ACDU)与墨天轮社区联合主办,以“智能·云原生·一体化——DB与AI协同创新,模型与架构融合发展”为主题,旨在推动数据技术的创新与发展,为从业者带来一场知识与技术的盛宴。
在为期两天的活动中,来自业界的80余位杰出技术领袖、学术精英、行业实践者以及生态布道者齐聚一堂,共同探讨数据技术的最新趋势、前沿应用与创新实践。与会者们分享了他们对于智能云原生和一体化发展的深刻见解,以及DB与AI如何协同创新,推动模型与架构的融合发展。
大会现场,极限科技创始人曾勇带来了令人瞩目的演讲,他详细介绍了下一代纯实时搜索引擎 INFINI Pizza。曾勇表示,随着大数据时代的到来,数据的实时处理与搜索成为了行业发展的重要方向。而 INFINI Pizza 正是为了满足这一需求而诞生的创新产品,它采用了先进的设计理念和架构实现,通过自有专利解决海量数据无限伸缩的需求,利用最新的算法和数据结构来充分释放现代硬件的威力,能够实现高效、准确的实时数据搜索能力,满足核心业务场景高并发低延迟的需求,为企业提供可靠稳定的实时搜索基础底座。
部分演讲内容
完整演讲内容请查看 PPT。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
2024 DTC 数据技术嘉年华 | 我们在现场等你
资讯动态 • searchkit 发表了文章 • 0 个评论 • 3751 次浏览 • 2024-04-03 18:42
导语
龙腾四海内,风云际会时。2024年4月12日至13日,北京新云南皇冠假日酒店将迎来一场盛会《第十三届数据技术嘉年华》。这是由墨天轮数据社区和中国数据库联盟(ACDU)携手主办的精彩盛事。本次嘉年华的主题是“智能·云原生·一体化——DB 与 AI 协同创新,模型与架构融合发展”将为您揭示数据技术的未来趋势。80余位行业领袖、技术精英、实践者和生态布道者将汇聚一堂,带来一场思想碰撞的盛宴。
极限科技(INFINI Labs)创始人 & CEO,Elasticsearch 中文社区(现搜索客)发起人兼社区主席曾勇先生应邀出席参加第十三届数据技术嘉年华盛会,并将于 4 月 13 日下午 15:00 在 NoSQL 数据库专题论坛上发表演讲,演讲主题:《下一代纯实时搜索引擎 Pizza》,为大家介绍当前最新搜索型数据库的行业发展趋势、前沿的技术方案、如何解决海量数据下的高并发低延迟实时检索需求等干货内容。
欢迎大家报名参会,共同探讨与交流。我在 DTC 现场等你!购票时输入优惠码(ZENGY)即可免费参会,数量有限,先到先得~
极限科技一直致力于推动数据技术的边界,不断突破创新。我们相信,通过与业内的顶级专家和领导者们的深入交流与合作,我们能够共同开创数据技术的美好未来。这场嘉年华将为我们提供一个珍贵的机会,与业界精英们面对面交流,共同探索数据技术的前沿领域。
大会议程
除了技术盛宴外,本次大会还为参会者准备了丰厚的大奖,其中主论坛的奖品更是高达上万元。此外,参会者们还可以前往各个厂商展台,领略产品魅力并感受最新最前沿的数据技术,完成集章任务后更有机会抽取千元大奖,相信一定能给您带来意想不到的惊喜!点击“查看原文”了解更多活动信息吧!
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
探索搜索引擎的新时代:Windows 安装 Easysearch 完全指南
Easysearch • Muses 发表了文章 • 0 个评论 • 1489 次浏览 • 2024-03-19 21:07
相信最近大家都已经听过Easysearch的名头,成功拿下了墨天轮搜索型数据库的榜首!什么?您不知道?那我再给您介绍下: INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。 相信看完了上面您已经对使用Easysearch有了想法,不要想,行动!我将带领您在windows环境中使用Easysearch,有几种安装方法可供选择!
方法一:使用Docker
对于已在Windows系统上安装了Docker的用户来说,通过Docker安装Easysearch是最直接高效的方法。接下来我将介绍Docker部署Easysearch的方法,如果没有安装Docker请跳过!
Docker 环境下使用 Easysearch
在使用 Docker 运行 Easysearch 之前,请确保已进行系统调优并安装好Docker服务,且Docker服务正常运行。
最快方式:启动临时的docker容器,可以从前台查看到admin的初始密码
```bash
docker run --name easysearch -p 9200:9200 dockerproxy.com/infinilabs/easysearch:latest
个性配置
从宿主机挂载数据目录及日志目录,并配置jvm内存为512m。
-
在宿主机上创建目录
bashCopy code sudo mkdir -p /data/easysearch/{data,logs}
-
修改目录权限
bashCopy code # 容器内es用户的uid为602,通过调整宿主机的目录权限,确保在容器内部es用户有权限读写挂载的数据卷 sudo chown -R 602.602 /data/easysearch
-
后台运行容器
bashCopy code docker run -d --restart always -p 9200:9200 \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \ -v /data/easysearch/data:/app/easysearch/data \ -v /data/easysearch/logs:/app/easysearch/logs \ --name easysearch --hostname easysearch \ dockerproxy.com/infinilabs/easysearch:latest
-
查看初始密码
bashCopy code # 由于以上容器是后台启动,需要通过日志找出admin的初始密码 docker logs easysearch 2>/dev/null | grep -w Usage
容器启停
-
启动容器
bashCopy code docker start easysearch
-
停止容器
bashCopy code docker stop easysearch
后续验证工作,请继续查看安装指南。
方法二:不使用HTTPS安装Easysearch
在某些情况下,您可能需要或者偏好不通过HTTPS方式进行安装。这种方法需要您手动下载并设置Easysearch及其依赖。
步骤1:下载并安装Easysearch
首先,手动下载 Easysearch 并将其解压到您希望的安装目录。
步骤2:下载并安装JDK
- 手动下载JDK安装包。
- 将JDK解压到Easysearch安装目录下。
-
将解压出来的JDK目录重命名为jdk。
步骤3:修改Easysearch配置
鉴于Windows默认不包含openssl,生成证书可能较为困难。您可以通过修改config/easysearch.yml文件来绕过证书验证:
security.enabled: false
方法三:通过git-for-windows安装
对于喜欢使用命令行的用户,可以通过安装git-for-windows,利用bash环境来执行安装命令。
步骤1:安装Easysearch
通过以下在线脚本命令安装Easysearch:
bashCopy code curl -sSL http://get.infini.cloud | bash -s -- -p easysearch -d /d/opt/easysearch
步骤2:下载并安装JDK
-
使用curl命令将JDK下载到指定目录:
bashCopy code curl -# https://release.infinilabs.com/easysearch/jdk/zulu17.42.19-ca-jdk17.0.7-win_x64.zip -o /d/opt/jdk.zip
- 解压JDK文件,并将解压后的目录重命名为jdk。
bashCopy code cd /d/opt/easysearch && unzip -q /d/opt/jdk.zip mv zulu* jdk
步骤3:设置JAVA_HOME环境变量
配置JAVA_HOME环境变量,以确保Easysearch能正确找到JDK。
bashCopy code export JAVA_HOME=/d/opt/easysearch/jdk
步骤4:初始化证书、密码和插件
执行以下命令,初始化所需的配置:
bashCopy code bin/initialize.sh
步骤5:运行Easysearch
最后,使用以下命令启动Easysearch:
bashCopy code bin/easysearch.bat
通过以上任一方法,您都应该能够成功在Windows系统上安装并运行Easysearch。请选择最适合您的需求和环境的安装方法。 请根据Easysearch和JDK的最新版本,适时更新上述命令和下载链接。接下来,请继续完成验证工作。
验证工作
为了保证Easysearch数据安全,初始化脚本会为admin用户生成随机的密码,如果使用Docker运行Easysearch或执行初始化脚本时同意记录初始密码到日志文件,则可在Docker日志文件或logs/initialize.log中找到admin用户对应的初始化密码。 由于初始脚本会自动覆盖集群上次使用的证书及内置的admin用户密码,请勿多次运行!如果您忘记了初始密码,可以通过内置的证书来进行密码重置。
bashCopy code # 根据初始化脚本生成的随机密码访问 Easysearch 的 REST API curl -ku admin:xxx https://localhost:9200
也可以在浏览器中输入网址 https://localhost:9200/,即可验证Easysearch是否完成启动。推荐使用INFINI Console来进行集群管理,功能更加强大和方便。 注:各类客户端及周边工具,如 Logstash、Filebeat 请使用7.10.2 oss版本来连接Easysearch。并打开config/easysearch.yml中的配置项elasticsearch.api_compatibility: true
如果你已经按照上面的步骤完成了安装,那么接下来请尽情的使用Easysearch吧!如果在安装过程中出现了问题的请私聊我!对了,希望在其他环境中部署Easysearch的也可以查询我们的安装指南,上面有详细的安装步骤!祝你好运!
INFINI Labs 产品更新 | Easysearch 1.7.1发布,改进跨集群复制的数据加载等
Easysearch • liaosy 发表了文章 • 0 个评论 • 1801 次浏览 • 2024-03-04 15:25
INFINI Labs 产品又更新啦~,包括 Console,Gateway,Agent 1.23.0 和 Easysearch 1.7.1。本次各产品更新了很多亮点功能,如 Console 优化实例管理中增加磁盘空闲空间显示,Easysearch 改进 HierarchyCircuitBreakerService 并添加断路器、改进跨集群复制的数据加载,增加对 source_reuse 索引的支持等。欢迎大家下载体验。
以下是本次更新的详细说明。
INFINI Easysearch v1.7.1
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。
Easysearch 本次更新如下:
Bug fix
- 修复 source_reuse 与字段别名冲突
- 改进 HierarchyCircuitBreakerService 并添加断路器
- 修复 _meta 不为空且 启用 source_reuse 时的映射解析错误
- 修复 source_reuse 下对多值还原不正确的问题
Improvements
- 改进 HierarchyCircuitBreakerService 并添加断路器
- 改进跨集群复制的数据加载,增加对 source_reuse 索引的支持
INFINI Console v1.23.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Bug fix
- 修复数据迁移中数据分片范围因精度导致数据溢出显示为负数
- 修复删除实例队列后消费的 Offset 未重置问题
- 修复网友提出的各种问题,如集群设置默认打开节点、索引采集等
Improvements
- 优化初始化配置向导,分步骤执行
- 优化实例管理中增加磁盘空闲空间显示
- 优化实例队列名称显示
INFINI Gateway v1.23.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Bug fix
- 修复删除实例队列后消费的 Offset 未重置问题
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
您还可以通过邮件联系我们:hello@infini.ltd
或者拨打我们的热线电话:(+86) 400-139-9200
欢迎加入 Discord 聊天室:https://discord.gg/4tKTMkkvVX
也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
INFINI Labs 产品更新 | Easysearch 新增分词插件、Gateway 支持邮件发送等功能
资讯动态 • liaosy 发表了文章 • 0 个评论 • 1649 次浏览 • 2023-07-21 17:28
INFINI Labs 产品又更新啦~,本次更新概要如下:Easysearch 新增了分词插件、优化了生命周期管理功能等;Gateway 新增 smtp 过滤器来支持邮件的发送,支持自动跳过因为异常关闭而损坏的磁盘队列文件等;Console 新增熔断器监控指标、新增矩形树图(Treemap)、优化了探针 Agent 指标采集和集群自动关联操作等。欢迎大家下载体验。
INFINI Easysearch v1.4.0
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。
Easysearch 本次更新如下:
Features
- 索引生命周期管理增加 wait_for_snapshot 操作,在删除索引之前,等待执行指定的快照管理策略,这样可以确保已删除索引的快照可用
- 增加 analysis-hanlp 分词插件
- 增加 jieba 分词插件
Bug fix
- 修复启用 index.source_reuse 时,对复杂多层 json 的 source 字段 解析不正确的 Bug
Improvements
- 更新索引生命周期管理 api 文档,增加策略应用和更新说明,增加 wait_for_snapshot 说明
- 执行
initialize.sh
命令时增加初始化确认提示,是否将 admin 密码记录日志
INFINI Gateway v1.17.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Features
- 新增 consumer Processor 来标准化订阅消息队列
- 新增 smtp 过滤器来支持邮件的发送
Bug fix
- 支持自动跳过因为异常关闭而损坏的磁盘队列文件
INFINI Console v1.4.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Features
- 新增熔断器监控指标
- 网关队列管理支持多选删除消费者
- 数据看板新增组件矩形树图
Bug fix
- 修复开发工具智能提示兼容性问题
- 修复探针列表状态显示异常的问题
- 修复探针列表分页不生效的问题
- 修复数据看板 统计函数显示不对的问题
- 修复探针下发采集指标配置重复的问题
- 修复数据看板设置过滤条件不生效的问题
- 修复主机列表探针状态不对的问题
- 修复网关管理删除队列不成功的问题
- 修复数据探索当前集群没索引时跳转的问题
- 修复数据看板编辑状态下点击事件的问题
Improvements
- 探针进程关联支持通过选择集群自动关联,简化操作
- 探针列表支持排序
- 探针支持向上滚动查看节点日志
- 采集监控指标添加 cluster_uuid 信息
- 数据看板支持配置指标排序
INFINI Agent v0.6.0
INFINI Agent 是 INFINI Console 的一个可选探针组件,负责采集和上传集群指标和日志等信息,并可通过 Console 管理。Agent 支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。
Agent 本次更新如下:
Features
- 采集监控指标添加 cluster_uuid 信息
Improvements
- 修复发现节点进程信息时获取不到最新集群配置的问题
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
- INFINI Gateway: https://github.com/infinilabs/gateway/issues
- INFINI Console: https://github.com/infinilabs/console/issues
- 下载地址: https://www.infinilabs.com/download
或者通过 Discord 渠道加入聊天室:https://discord.com/invite/tnZ8S5vQ
欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群讨论,或者扫码加入我们的知识星球一起学习交流。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
用极限网关实现ES容灾,简单!
Elasticsearch • yangmf2040 发表了文章 • 0 个评论 • 2255 次浏览 • 2023-07-20 10:33
身为 IT 人士,大伙身边的各种系统肯定不少吧。系统虽多,但最最最重要的那套、那几套,大伙肯定是捧在手心,关怀备至。如此重要的系统,万一发生故障了且短期无法恢复,该如何保障业务持续运行? 有过这方面思考或经验的同学,肯定脱口而出--切灾备啊。 是的,接下来我来介绍下我们的 ES 灾备方案。当然如果你有更好的,请使用各种可用的渠道联系我们。
总体设计
通过极限网关将应用对主集群的写操作,复制到灾备集群。应用发送的读请求则直接转发到主集群,并将响应结果转发给应用。应用对网关无感知,访问方式与访问 ES 集群一样。
方案优势
- 轻量级
极限网关使用 Golang 编写,安装包很小,只有 10MB 左右,没有任何外部环境依赖,部署安装都非常简单,只需要下载对应平台的二进制可执行文件,启动网关程序的二进制程序文件执行即可。
- 跨版本支持
极限网关针对不同的 Elasticsearch 版本做了兼容和针对性处理,能够让业务代码无缝的进行适配,后端 Elasticsearch 集群版本升级能够做到无缝过渡,降低版本升级和数据迁移的复杂度。
- 高可用
极限网关内置多种高可用解决方案,前端请求入口支持基于虚拟 IP 的双机热备,后端集群支持集群拓扑的自动感知,节点上下线能自动发现,自动处理后端故障,自动进行请求的重试和迁移。
- 灵活性
主备集群都是可读可写,切换迅速,只需切换网关到另一套配置即可。回切灵活,恢复使用原配置即可。
架构图
网关程序部署
下载
根据操作系统和平台选择下面相应的安装包: 解压到指定目录:
mkdir gateway
tar -zxf xxx.gz -C gateway
修改网关配置
在此 下载 网关配置,默认网关会加载配置文件 gateway.yml ,如果要指定其他配置文件使用 -config 选项指定。 网关配置文件内容较多,下面展示必要部分。
#primary
PRIMARY_ENDPOINT: http://192.168.56.3:7171
PRIMARY_USERNAME: elastic
PRIMARY_PASSWORD: password
PRIMARY_MAX_QPS_PER_NODE: 10000
PRIMARY_MAX_BYTES_PER_NODE: 104857600 #100MB/s
PRIMARY_MAX_CONNECTION_PER_NODE: 200
PRIMARY_DISCOVERY_ENABLED: false
PRIMARY_DISCOVERY_REFRESH_ENABLED: false
#backup
BACKUP_ENDPOINT: http://192.168.56.3:9200
BACKUP_USERNAME: admin
BACKUP_PASSWORD: admin
BACKUP_MAX_QPS_PER_NODE: 10000
BACKUP_MAX_BYTES_PER_NODE: 104857600 #100MB/s
BACKUP_MAX_CONNECTION_PER_NODE: 200
BACKUP_DISCOVERY_ENABLED: false
BACKUP_DISCOVERY_REFRESH_ENABLED: false
PRIMARY_ENDPOINT:配置主集群地址和端口
PRIMARY_USERNAME、PRIMARY_PASSWORD: 访问主集群的用户信息
BACKUP_ENDPOINT:配置备集群地址和端口
BACKUP_USERNAME、BACKUP_PASSWORD: 访问备集群的用户信息
运行网关
前台运行 直接运行网关程序即可启动极限网关了,如下:
./gateway-linux-amd64
后台运行
./gateway-linux-amd64 -service install
Success
./gateway-linux-amd64 -service start
Success
卸载服务
./gateway-linux-amd64 -service stop
Success
./gateway-linux-amd64 -service uninstall
Success
灾备功能测试
在灾备场景下,为保证数据一致性,对集群的访问操作都通过网关进行。注意只有 bulk API 的操作才会被复制到备集群。 在此次测试中,网关灾备配置功能为:
- 主备集群正常时
读写请求正常执行; 写请求被记录到队列,备集群实时消费队列数据。
- 当主集群故障时
写入请求报错,主备集群都不写入数据; 查询请求转到备集群执行,并返回结果给客户端。
- 当备集群故障时
读写请求都正常执行; 写操作记录到磁盘队列,待备集群恢复后,自动消费队列数据直到两个集群一致。
主备集群正常时写入、查询测试
写入数据
# 通过网关写入数据
curl -X POST "localhost:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "create" : { "_index" : "test", "_id" : "2" } }
{ "field2" : "value2" }
'
查询数据
# 查询主集群
curl 192.168.56.3:7171/test/_search?pretty -uelastic:password
# 查询备集群
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin
# 查询网关,网关转发给主集群执行
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password
主备集群都已写入数据,且数据一致。通过网关查询,也正常返回。
删除和更新文档
# 通过网关删除和更新文档
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "delete" : { "_index" : "test", "_id" : "1" } }
{ "update" : {"_id" : "2", "_index" : "test"} }
{ "doc" : {"field2" : "value2-updated"} }
'
查询数据
# 查询主集群
curl 192.168.56.3:7171/test/_search?pretty -uelastic:password
# 查询备集群
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin
两个集群都已执行删除和更新操作,数据一致。
主集群故障时写入、查询测试
为模拟主集群故障,直接关闭主集群。
写入数据
# 通过网关写入数据
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "3" } }
{ "field3" : "value3" }
{ "create" : { "_index" : "test", "_id" : "4" } }
{ "field4" : "value4" }
'
写入数据报错
查询数据
# 通过网关查询,因为主集群不可用,网关将查询转发到备集群执行
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password
正常查询到数据,说明请求被转发到了备集群执行。
备集群故障时写入、查询测试
为模拟备集群故障,直接关闭备集群。
写入数据
# 通过网关写入数据
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "5" } }
{ "field5" : "value5" }
{ "create" : { "_index" : "test", "_id" : "6" } }
{ "field6" : "value6" }
'
数据正常写入。
查询数据
# 通过网关查询
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password
查询成功返回。主集群成功写入了两条新数据。同时此数据会被记录到备集群的队列中,待备集群恢复后,会消费此队列追数据。
恢复备集群
启动备集群。
查询数据
等待片刻或通过 INFINI Console 确定网关队列消费完毕后,查询备集群的数据。
(生产和消费 offset 相同,说明消费完毕。)
# 查询备集群的数据
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin
备集群启动后自动消费队列数据,消费完后备集群数据达到与主集群数据一致。
灾备切换
测试了这么多,终于到切换的时刻了。切换前我们判断下主系统是否短期无法修复。
如果我们判断主用系统无法短时间恢复,要执行切换。非常简单,我们直接将配置文件中定义的主备集群互换,然后重启网关程序就行了。但我们推荐在相同主机上另部署一套网关程序--网关B,先前那套用网关A指代。网关B中的配置文件把原备集群定义为主集群,原主集群定义为备集群。若要执行切换,我们先停止网关A,然后启动网关B,此时应用连接到网关(端口不变),就把原备系统当作主系统使用,把原主系统当作备系统,也就完成了主备系统的切换。
灾备回切
当原主集群修复后,正常启动,就会从消费队列追写修复期间产生数据直到主备数据一致,同样我们可通过 INFINI Console 查看消费的进度。如果大家还是担心数据的一致性,INFINI Console 还能帮大家做[校验数据]()任务,做到数据完全一致后(文档数量及文档内容一致),才进行回切。
回切也非常简单,停止网关B,启动网关A即可。
网关高可用
网关自带浮动 IP 模块,可进行双机热备。客户端通过 VIP 连接网关,网关出现故障时,VIP 漂移到备网关。
视频教程戳这里。
这样的优点是简单,不足是只有一个网关在线提供服务。如果想多个网关在线提供服务,则需搭配分布式消息系统一起工作,架构如下。
前端通过负载均衡将流量分散到多个在线网关,网关将消息存入分布式消息系统。此时,网关可看作无状态应用,可根据需要扩缩规模。
以上就是我介绍的ES灾备方案,是不是相当灵活了。有问题还是那句话 Call me 。
关于极限网关
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway,可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
给 ES 插上向量检索的翅膀 | DataFunSummit 2023 峰会演讲内容速达
Elasticsearch • liaosy 发表了文章 • 0 个评论 • 1506 次浏览 • 2023-07-12 18:37
近日,由 DataFun 主办的 DataFunSummit 2023 数据基础架构峰会 圆满落下帷幕,本次峰会邀请了腾讯、百度、字节、极限科技、Zilliz 等众多企业技术专家为大家带来分布式存储以及向量数据库的架构原理、性能优化与实践解析分享。
在 向量数据库架构与实践论坛 中,极限科技搜索引擎研发工程师张磊受邀出席做了《给 ES 插上向量检索的翅膀》的主题演讲。据介绍,本次演讲主要介绍了 Elasticsearch(ES)与向量技术的融合,展示其在不同行业中的应用场景和优势,同时也对 ES 与向量的技术细节进行详细讨论,并通过具体案例演示如何利用向量提升搜索能力。
讲师介绍
张磊,极限科技 Easysearch 引擎研发工程师,2013 年开始接触 Elasticsearch,10 余年搜索相关经验,之前主要做一些围绕 Elasticsearch 在日志检索和公安大数据相关业务的开发,对 Elasticsearch 和 Lucene 源码比较熟悉,目前专注于公司内部搜索产品的开发。
《给 ES 插上向量检索的翅膀》PPT 内容
更多 PPT 内容参见 https://elasticsearch.cn/slides/322
关于 Easysearch
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。
【INFINI Workshop 上海站】7 月 27 日一起动手实验玩转 Easysearch
资讯动态 • liaosy 发表了文章 • 1 个评论 • 1968 次浏览 • 2023-07-07 16:30
INFINI Easysearch 完成龙芯架构兼容性认证
Easysearch • liaosy 发表了文章 • 0 个评论 • 2107 次浏览 • 2023-06-06 17:06
近日,极限科技旗下软件产品 INFINI Easysearch 搜索引擎软件 V1.0 在龙芯中科的龙芯 3C5000L 平台上完成兼容性测试,功能与稳定性良好,并获得龙架构兼容互认证书。
龙芯是中国自主可控计算机处理器的代表品牌之一。龙芯处理器是由中国科学院计算技术研究所自主研发的一款高性能、低功耗、安全可靠的处理器。龙芯 3C5000L 是龙芯中科专门面向服务器领域的通用处理器。基于龙芯 3A5000 处理器,片上集成共 16 个高性能 LA464 处理器核,采用全新的龙芯自主指令系统(LoongArch®),在提高集成度的同时保持系统和软件与龙芯 3A5000 完全兼容。
极限科技研发的 INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。 同时也是一款具备自主可控的分布式近实时搜索型数据库产品,具备高性能、高可用、弹性伸缩、高安全性等特性,具备支持丰富的个性化搜索及聚合分析能力,可部署在物理机、虚拟机、容器、私有云和公有云,能承载 PB 级别的海量业务数据,为金融核心系统、运营商、制造业和政企业务系统提供安全、稳定、可靠的快速检索和实时数据探索分析能力,可满足不同业务场景的各项复杂需求。
此次通过龙芯架构(LoongArch)的兼容性测试,有效验证了 Easysearch 对于国产化 CPU 的互操作性与可靠性。此外,Easysearch 也实现了对麒麟、统信、欧拉等国产操作系统的支持。未来,极限科技将继续加强与各大厂商的合作,深化对国产化软硬件技术栈的支持能力,为用户提供更加优质、稳定、高效、安全的搜索服务。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
详情参见官网:https://www.infinilabs.com
招聘搜索引擎内核研发工程师(Rust方向)
求职招聘 • medcl 发表了文章 • 0 个评论 • 5454 次浏览 • 2023-01-28 17:33
- 设计并开发下一代实时搜索引擎 ;
- 持续优化实现方案,改进组件性能 ;
- 保证工程质量和开发效率 。
- 3 年以上搜索引擎开发经验,计算机相关专业,本科及以上学历 ;
- 熟练掌握 Rust/C/C++/Golang 中的一种或多种语言,有 Rust 实际开发经验者优先 ;
- 熟悉 Linux 操作系统,了解Linux系统常用操作命令, 能基于shell编写脚本 ;
- 熟悉 Linux 下内存管理机制,低延迟、高并发无锁化编程 ;
- 熟悉 TCP/IP、Socket、HTTP 等网络协议 ;
- 具有良好的沟通、团队协作能力;
- 熟悉常见分布式算法,有大规模分布式系统开发经验优先;
- 较好的英文阅读和写作能力,具备比较强的逻辑思维能力;
- 良好的编码习惯和技术文档能力,具备持续输出的能力;
- 工作地点不限 。
- 有自己的博客、Github、开源项目优先 ;
- 具有相关搜索引擎开发工作经验者优先 ;
- 熟悉各类索引结构;
- 熟悉 LSM-Tree、B+Tree、RocksDB、LevelDB 优先 ;
- 有较强的学习能力,愿意致力于新技术的研究 。
社区日报 第504期 (2019-01-09)
社区日报 • elk123 发表了文章 • 0 个评论 • 3963 次浏览 • 2019-01-09 13:42
Day22 - 熟练使用ES离做好搜索还差多远?
Advent • nodexy 发表了文章 • 2 个评论 • 8641 次浏览 • 2018-12-21 17:27
搜索引擎作为互联网发展历史中一个非常典型的产品/业务形态,时至今日并没有太大的突破性变化;主流形态可以划分为大搜、垂搜、企业级搜索和站内/app内搜索等。除了Google, Yahoo, Bing, Ask 等以及国内百度、搜狗、360、神马等是人们熟识的大搜之外,非业内人士还真不知道其他还有哪些公司以及有哪些搜索产品或业务场景。 实际上,在信息爆炸的时代,几乎每家有点儿规模的公司都或多或少要涉及到搜索引擎,最起码你需要接触SEO/SEM。本文将从非大搜企业的搜索需求出发,并基于开源技术栈来介绍和探讨搜索引擎在实践中的几个核心任务及其主要解决思路。同时为了避免重复,本文以外链形式引用了大量网络已有的国内外公开资料,方便大家参考,需要注意的是部分内容可能会随着时间推移而过期或链接失效。 提到开源搜索引擎,在Java技术栈里以Lucene, Solr/SolrCloud及Elasticsearch为代表的几个项目可能最为流行。本文的写作初衷是解答”熟练使用ES等开源搜索引擎解决方案以后,要如何才能做好搜索产品/业务?“ 希望对你有所帮助,如果你有关于此话题的更多实践经验或不同见解,欢迎留言评论交流。 1. 做好搜索引擎意味着什么? 有一位同行的文章总结了好的搜索引擎的衡量维度:作者:杨振涛 搜索引擎架构师@vivo 首次发布:Elasticsearch中文社区 发布日期:2018-12-22
- 相关性
- 体验
- 性能
- 搜索前:搜索框,搜索入口,热搜榜/飙升榜/大家都在搜,搜索发现,默认搜索词,历史搜索记录,猜你想搜,分类搜索,语音输入搜索/图片搜索; 广告位
- 搜索中:搜索联想直达,搜索联想词,输入纠错,关键词匹配高亮
- 搜索后:搜索结果列表,列表页推荐/广告,特形展示,列表穿插,搜了还搜,搜索详情页,详情页搜索推荐,无结果及少结果填充 ,筛选条件/筛选器,自主排序,列表样式切换(宫格 | 列表)
- 单维度排序:顾名思义按照单个维度来排序,没有任何复杂性可言,在召回结果集不太大的情况下实时排序即可。
- 优先级排序:相对单维度排序而已一般是先按维度A排,当A的排序依据一样或相等时再按维度B排序,以此类推。
- 加权排序 :针对多个维度或特征,赋予不同权重,并按求和之后的得分来排序;实践中通常会采用分层加权排序(第一层加权排序之后,得到不少于2个得分,继续加权后排序),或者分组加权排序(第一层分组来加权排序后,对所得到的得分可能按业务需求进行非求和类的运算比如乘法,再按最终得分排序)的策略。 加权排序的难点在于,如何设置并持续优化这些权重,通常会建模为典型的机器学习问题来拟合。
- 机器学习排序 :即所谓LTR,根据用户点击或人工标注数据集建立学习目标,然后通过特征工程来挖掘与目标有关系的一系列特征,并建立学习模型,通过训练集获得模型参数,以该组参数为基准做预测,上线后再基于用户点击数据持续优化该模型的参数。LTR是一个通用方法的称谓,不是某一个具体算法的名称,具体算法名称参见下文。
- MART (Multiple Additive Regression Trees, a.k.a. Gradient boosted regression tree)
- RankNet
- RankBoost
- AdaRank
- Coordinate Ascent
- LambdaMART
- ListNet
- Random Forests
- vivo互联网技术: 搜索引擎与其他机器学习有何不同 https://mp.weixin.qq.com/s/uWg3m5xIGBAKNqqDmxzw2Q
- InfoQ:在 Elasticsearch 中应用机器学习排序 LTR https://www.infoq.cn/article/w ... earch
- InfoQ:认识机器学习排序 LTR https://www.infoq.cn/article/m ... g-ltr
- InfoQ:机器学习排序 LTR 入门——线性模型 https://www.infoq.cn/article/2 ... model
- 搜索质量概述 https://opensourceconnections. ... lity/
- nDCG排序打分工具 https://opensourceconnections. ... epid/
- 百度众测任务: Query与广告之间的相关性评估规则 http://test.baidu.com/mark/task/view/id/2584923
- Search Quality Evaluation Tool for Apache Solr & Elasticsearch search-based infrastructures https://github.com/SeaseLtd/ra ... uator
![](https://img12.360buyimg.com/n1 ... c.jpg)
高薪聘请ES(elasticsearch)搜索研发工程师
求职招聘 • mao13868891931 发表了文章 • 2 个评论 • 6023 次浏览 • 2018-06-07 17:49
【INFINI Workshop 上海站】7 月 27 日一起动手实验玩转 Easysearch
资讯动态 • liaosy 发表了文章 • 1 个评论 • 1968 次浏览 • 2023-07-07 16:30
招聘搜索引擎内核研发工程师(Rust方向)
求职招聘 • medcl 发表了文章 • 0 个评论 • 5454 次浏览 • 2023-01-28 17:33
- 设计并开发下一代实时搜索引擎 ;
- 持续优化实现方案,改进组件性能 ;
- 保证工程质量和开发效率 。
- 3 年以上搜索引擎开发经验,计算机相关专业,本科及以上学历 ;
- 熟练掌握 Rust/C/C++/Golang 中的一种或多种语言,有 Rust 实际开发经验者优先 ;
- 熟悉 Linux 操作系统,了解Linux系统常用操作命令, 能基于shell编写脚本 ;
- 熟悉 Linux 下内存管理机制,低延迟、高并发无锁化编程 ;
- 熟悉 TCP/IP、Socket、HTTP 等网络协议 ;
- 具有良好的沟通、团队协作能力;
- 熟悉常见分布式算法,有大规模分布式系统开发经验优先;
- 较好的英文阅读和写作能力,具备比较强的逻辑思维能力;
- 良好的编码习惯和技术文档能力,具备持续输出的能力;
- 工作地点不限 。
- 有自己的博客、Github、开源项目优先 ;
- 具有相关搜索引擎开发工作经验者优先 ;
- 熟悉各类索引结构;
- 熟悉 LSM-Tree、B+Tree、RocksDB、LevelDB 优先 ;
- 有较强的学习能力,愿意致力于新技术的研究 。
【搜索客社区日报】第1858期 (2024-07-12)
社区日报 • Fred2000 发表了文章 • 0 个评论 • 2120 次浏览 • 2024-07-12 14:05
搜索型数据库的技术发展历程与趋势前瞻
资讯动态 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 1926 次浏览 • 2024-06-26 13:13
概述
随着数字科技的飞速发展和信息量的爆炸性增长,搜索引擎已成为我们获取信息的首选途径之一,典型的代表厂商如 Google。然而,随着用户需求的不断演变,传统的搜索技术已经无法满足人们对信息的实时性、个性化和多样性的需求。
在企业内部,这种需求更加显著。随着企业数字化转型的持续深化,非结构化数据正日益成为各类组织数据增长的主要来源,也是数据体系中至关重要的组成部分,蕴含着巨大的价值。如何高效地存储和利用非结构化数据的重要性也日益凸显。企业需要更高效地管理和检索内部的海量数据,以支持业务决策和运营需求。
据 IDC 数据预计,到 2025 年,80%的数据将是非结构化数据;而根据 Gartner 的数据显示,从 2019 年到 2024 年,非结构化数据容量预计将增加两倍。然而,目前非结构化数据面临着表现形式多样、管理复杂性高、价值挖掘难度大等诸多挑战。传统的数据库系统往往无法满足企业对实时性和多样性的搜索需求,为了解决这些挑战,以自动分词、倒排索引、相关度计算、向量检索引擎等技术为核心构建的搜索型数据库应运而生。这些数据库自上世纪 90 年代诞生以来不断发展演进,正在成为数据库领域中不可或缺的一个重要分支。
什么是搜索型数据库?
搜索型数据库早期又称全文数据库,或者企业搜索引擎,是一种专门用于存储和管理大规模文本数据,并支持高效的文本搜索和信息检索的数据库系统,不过随着技术不断发展和应用场景日益丰富,目前搜索型数据库不仅仅可以处理长文本数据,也可以处理常见的数值、日期等结构化数据,IP、地理位置信息、图片、音视频等非结构化数据,搜索型数据库的应用范畴不断拓展,正在由支撑业务系统检索加速、IT 运维可观测性、聚合查询分析等向多场景、多模态数据搜索方向发展。
典型的搜索数据库一般具有以下特点:
- 灵活的索引能力:搜索数据库能够处理多种类型的数据,包括文本、图像、音频、视频等非结构化数据。它们采用自动分词、倒排索引等技术,能够高效地处理不同格式和类型的数据,提供灵活的搜索和检索功能。
- 高效的查询性能:搜索数据库具有高效的查询处理能力,能够快速索引和检索大规模的数据。借助优化的索引结构和查询算法,搜索数据库能够在短时间内准确地返回与查询相关的结果,提高用户的搜索效率,常用于解决关系型数据库的高并发检索需求。
- 支持复杂的搜索功能:搜索数据库提供多样化的搜索功能,包括全文检索、模糊搜索、精确搜索、范围搜索、向量搜索、地理信息检索等。用户可以根据不同的需求和场景,灵活地选择和组合不同的搜索功能,以获取符合期望的搜索结果。
- 高性能和可扩展性:搜索数据库具有高性能和可扩展性的特点,能够处理大规模数据和高并发访问。它们采用分布式架构和并行计算技术,实现了水平扩展,能够满足不断增长的数据量和用户访问量的需求。
综上所述,搜索数据库具有处理非结构化数据、实时搜索和更新、多样化的搜索功能、个性化推荐和智能搜索、高性能和可扩展性、全面的搜索结果展示等特点,是处理大规模数据和提供高效搜索服务的重要工具。
搜索型数据库的应用场景
搜索型数据库在各行各业都有广泛的应用,以下是一些典型的应用场景:
- 零售和电商:在零售和电商行业,搜索型数据库被广泛应用于产品搜索和推荐系统中。通过搜索功能,顾客可以轻松查找所需商品,而个性化推荐系统则可以根据用户的搜索历史和行为习惯推荐相关的产品,提高购物体验和交易转化率。
- 医疗保健:在医疗保健行业,搜索型数据库被用于医学文献检索、疾病诊断和药物搜索等方面。医生和研究人员可以利用搜索功能找到相关的医学文献和研究成果,帮助诊断疾病和制定治疗方案。
- 金融服务:在金融服务行业,搜索型数据库被用于金融数据检索、市场分析和投资决策等方面。投资者可以通过搜索功能查找相关的金融数据和市场资讯,帮助他们做出更加准确的投资决策。
- 制造业:在制造业中,搜索型数据库被用于生产过程监控、质量控制和故障诊断等方面。工程师可以利用搜索功能查找相关的生产数据和技术资料,帮助他们解决生产中的问题和挑战。
- 媒体和娱乐:在媒体和娱乐行业,搜索型数据库被用于内容检索、版权管理和用户推荐等方面。用户可以通过搜索功能查找感兴趣的新闻、音乐和视频等内容,而个性化推荐系统则可以根据用户的搜索历史和偏好推荐相关的内容。
- 教育和培训:在教育和培训行业,搜索型数据库被用于学习资源检索、课程管理和学习分析等方面。学生和教师可以利用搜索功能查找相关的学习资源和课程内容,而学习分析系统则可以分析学生的搜索行为和学习表现,为教学提供参考和支持。
- IT 运维可观测性:通过搜索型数据库,可以实时监控系统的运行状况、性能指标和日志数据,帮助运维团队及时发现和解决系统故障、性能问题和异常情况,确保系统的稳定运行。
- 安全监测和威胁检测:利用搜索型数据库对系统的安全日志进行审计和监控,监测用户的访问行为和系统操作,及时发现异常行为和安全事件。同时,搜索型数据库还可以与威胁情报数据集成,对内部日志数据进行关联分析,快速识别并应对各种安全威胁和攻击行为,保障系统和数据的安全。
综上所述,搜索型数据库在各行各业都发挥着重要作用,数据规模从 GB 到 PB 不等,体现在生活中的方方面面,为用户提供了高效、准确和个性化的信息搜索和检索服务,推动了各行业的发展和进步。随着搜索技术的不断创新和发展,搜索型数据库在各行业中的应用将会越来越广泛,并持续为用户带来更加便捷和智能的搜索体验。
搜索型数据库的发展历程
搜索型数据库的发展历程可以概括如下四个阶段:
- 起步阶段(1990 年代):搜索数据库的雏形开始于上世纪 90 年代,当时以全文检索为主要技术手段,最初用于文档检索和网络搜索。典型代表包括 AltaVista、Excite 等。
- 技术突破(2000 年代):随着互联网的快速发展,搜索数据库开始应用于更多领域,如电子商务、社交网络等。Lucene、Sphinx 等开源搜索引擎的出现推动了搜索技术的进步。
- 商业化发展(2010 年代):搜索数据库进入商业化阶段,以 Elasticsearch 等为代表的商业搜索引擎崭露头角。企业开始大规模应用搜索数据库来管理和检索大量数据。
-
智能化转型(2020 年代):随着人工智能技术的发展,搜索数据库逐渐向智能化转型,开始引入机器学习、自然语言处理等技术,提供个性化推荐和智能搜索服务。同时,搜索数据库也在更多领域得到应用,如医疗保健、金融服务等。
综上所述,搜索数据库经历了从起步阶段到技术突破、商业化发展再到智能化转型的发展历程,表明了其在信息检索领域的重要性和不断演进的趋势,不并断推动着搜索技术的进步和应用范围的扩展。随着人工智能技术的不断成熟,搜索数据库将会在智能化、个性化等方面取得更大的进步,为用户提供更加优质的搜索体验。
搜索型数据库的发展情况
搜索型数据库市场上已经有不少成熟的产品和厂商,但是总的来说,搜索型数据库的界限范围有点模糊,当然其他数据库也有同样的问题,有很多数据库既是文档数据库,又是多模态数据库,还是向量数据库等等,而常见的搜索型数据库主要诞生于:
- 由搜索引擎内核库发展而来的搜索数据库,如 Elasticsearch
- 由其他数据库扩展而来的搜索数据库,如 Postgres Full-Text Search
- 从零开始整体设计的搜索数据库:如 INFINI Pizza
通过流行的 DB-Engines 的搜索引擎排行榜,可以初探国外主流的搜索型数据库的流行趋势,如下图:
可以看到 Elastic 公司的 Elasticsearch 还是依旧保持强悍,自从 Elasticsearch 十多年前掀翻了 Splunk 的桌子,硬生生的在日志领域杀出一条新路,随后大杀四方,碾压整个搜索行业,霸榜至今。Elastic 商业化增长稳健,2023 年收入超过 10 亿美金。
OpenSearch 是由 AWS 发起的 Elasticsearch 开源分支,起因是由于 Elastic 针对云厂商采取的协议变更为 Elastic+SSPL,OpenSearch 基于 Apache 2.0 协议的 Elasticsearch 7.10 版本衍生而来,目前也具备了一定的用户基础。
Splunk 是一款用于搜索、监控和分析大规模机器生成的数据的软件平台,主要用于日志和安全分析领域,属于商业闭源产品。2023 年中被思科(Cisco) 以 230 亿美元现金收购,瞬间刷爆朋友圈。另外有意思的是,前四名除了 Splunk,底层都是 Lucene 内核。
MarkLogic 成立于 2001 年,自我定位是一个 NoSQL 多模态数据库厂商,也是商业闭源软件,生态成熟但是系统过于复杂,学习曲线较陡, 2023 年初被 Progress Software 以 3.55 亿美元收购算是一个比较好的结局。
当然了,除了榜上的这些产品,还有很多优秀的挑战者正摩拳擦掌,跃跃欲试。如下面的这些项目: vespa、Rockset、Doris,Clickhouse、quickwit、Pinot、SingleStore、qdrant、milvus、algolia、meilisearch、typesense、Manticore Search 等等。这些项目不一定都是自己定位是搜索型数据库,有侧重在 AI 领域的,有侧重在实时分析领域的等等,可谓各有千秋,不过都具备一定的搜索和分析能力,不出意外,基本上每家都要号称吊打 Elasticsearch 一番。
国内搜索型数据库的发展情况
搜索型数据库已经成为企业事实上的重要基础设施,而国内搜索型数据库的发展近些年也是开始得到重视,2023 年初,由中国信通院云计算与大数据研究所牵头,依托中国通信标准化协会大数据技术标准推进委员会,联合拓尔思、极限科技、星环科技等 30 余家企业编制的《搜索型数据库技术要求》正式出炉,该标准已成为行业内搜索型数据库技术选型和产品开发的风向标,极限科技的 INFINI Easysearch 率先通过了该标准。
墨天轮社区也开辟了搜索型数据库的排行榜,共有 6 家企业的产品上榜:
国内搜索型数据库的市场还在起步阶段,厂商和可选的产品也还比较少,不过随着市场的成熟,相信未来将迎来一波高速的发展。
搜索型数据库的趋势前瞻
技术在演变,场景在演变,数据也在演变,搜索数据库领域的发展也呈现出多个显著的趋势,这些趋势将进一步推动搜索技术的演进和应用范围的扩展。笔者观测到的主要的发展趋势包括以下方向供参考:
1. 趋势一:实时搜索与分析
-
实时搜索是搜索数据库领域的一个重要发展趋势,业务应用都在朝实时方向演进,用户对信息的即时性需求不断增加,要求搜索结果能够及时反映最新的数据和内容。
-
实时搜索技术通过实时索引和实时更新机制,能够实现快速的数据检索和更新,提供与时俱进的搜索结果,满足用户对信息的即时性需求。
- 目前以 Lucene 为内核的搜索型数据库基本上都只能做到 NRT(近实时)搜索,并且频繁更新带来的挑战和资源的浪费比较高,如果能做到更高效的实时性,可以大大提升用户的搜索体验和实时决策能力。
2. 趋势二:多模态混合搜索
-
多模态搜索是指在搜索过程中同时考虑多种信息形式,如文本、图像、视频等,以提高搜索结果的准确性和全面性。
-
这种技术能够通过分析和理解多种信息形式之间的关联性,为用户提供更加全面、丰富的搜索结果,适用于需要综合不同媒体形式的搜索场景。
- 现实世界的数据越来越复杂化,非结构化数据的利用的场景也越来越多,多模态可以为业务提供更加灵活的分析和探索能力,混合搜索的能力非常具有吸引力。
3. 趋势三:AI 智能语义搜索
-
大模型、AI 智能搜索技术的探索可谓是一日千里,通过利用人工智能技术来实现搜索过程中的智能化、语义化和个性化,结合自然语言处理、机器学习等技术分析用户意图,提供更加智能、个性化的搜索服务。
-
随着大模型的兴起,搜索数据库开始采用像 RAG(Retriever-Reader for Generative Question Answering)这样的大型预训练模型来提升搜索的效果。RAG 模型结合了检索器和阅读器的功能,能够实现更加准确和全面的搜索结果,为用户提供更加智能和个性化的搜索服务。
- 搜索型数据库可谓是 AI 落地最好的是试验田,Elasticsearch 通过拥抱 AI 和大模型,目前股价又重回巅峰,可喜可贺。
4. 趋势四:云原生、存算分离、Serverless
-
随着云计算技术的发展,搜索数据库正逐渐向云原生架构转变。云原生搜索数据库利用容器化、微服务架构等技术,实现了更高的灵活性、可扩展性和容错性,为企业提供了更加稳定和高效的搜索服务,并且成本更低,更加弹性。
-
存算分离是搜索数据库发展的另一重要趋势。通过将存储与计算分离,搜索数据库可以更好地适应数据存储和计算需求的变化,提高系统的性能和效率。存算分离技术使得搜索数据库能够实现更高的并发访问和更快的数据处理速度,为用户提供更加流畅和稳定的搜索体验。
- Serverless 提供开箱即用的体验,成本更低,使用更加灵活,也是目前很多搜索服务提供商正在积极探索的方向。
5. 趋势五:增强现实搜索
- 随着增强现实技术的发展,尤其是 Apple 发布的头戴式 Vision Pro,一部革命性的空间运算设备,将数位内容无缝融入实体世界,而搜索技术也将逐渐与增强现实相结合,为用户提供更加直观和沉浸式的搜索体验。增强现实搜索能够将搜索结果与现实世界相结合,结合 AI 技术为用户提供更加个性化和便捷的搜索服务,这是一个全新的领域,也意味着巨大的机会。
6. 趋势六:现代硬件的高效利用
-
现代硬件及软件运行环境已发生翻天覆地的变化, 片上计算,边缘计算,FPGA,DPU,GPU,一台设备几百核上 TB 内存已经成为现实,可运行之上的软件却还是停留在几十年前的架构。 如 Elasticsearch 其核心 Lucene(及类似实现) 是在 1997 建立的,距今已有 27 年了,虽然也在与时俱进,但是部分架构和设计理念已不具备先进性。
- 在现代的硬件上采用更先进的算法,更新的数据结构、更新的设计理论,利用最新的 CPU 指令集,向量化,批处理,充分发挥多核、大内存和 SSD 的优势,从而达到更高的效率,更低的成本,去解决之前不可能实现的问题,大有可为,也是下一代引擎需要关注的方向。
随着各类数据库功能的边界越来越模糊,应用场景高度交叉重叠,市场竞争也变得白热化,不过笔者认为垂直领域的搜索型数据库机会还是很大,而想做大而全的数据库产品已经没有太多的市场生存空间,一定要在垂直领域有特别专注的地方,我们 INFINI Labs 正在基于 Rust 研发的下一代搜索引擎 INFINI Pizza,就侧重于面向终端用户场景,解决海量数据更新情况下,同时满足高并发和低延迟的核心业务实时检索需求。
总结
综上所述,搜索数据库领域正处于快速发展的阶段。随着互联网数据量的不断增长和用户需求的不断变化,搜索数据库技术将不断创新和进步,以满足用户对信息获取的更加即时、个性化和多样化的需求。未来,随着人工智能技术的进一步发展和应用,搜索数据库将会变得更加智能化、普及化和多样化,为用户提供更加高效、准确和个性化的搜索服务,推动互联网信息的更加便捷获取和利用。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
回顾DTC2024大会——聚焦数据技术创新:极限科技创始人曾勇揭秘下一代纯实时搜索引擎 INFINI Pizza
资讯动态 • liaosy 发表了文章 • 0 个评论 • 4056 次浏览 • 2024-04-13 21:54
2024年4月12日至13日,备受瞩目的第十三届“数据技术嘉年华”(DTC2024)在北京新云南皇冠假日酒店盛大开幕。本次大会由中国DBA联盟(ACDU)与墨天轮社区联合主办,以“智能·云原生·一体化——DB与AI协同创新,模型与架构融合发展”为主题,旨在推动数据技术的创新与发展,为从业者带来一场知识与技术的盛宴。
在为期两天的活动中,来自业界的80余位杰出技术领袖、学术精英、行业实践者以及生态布道者齐聚一堂,共同探讨数据技术的最新趋势、前沿应用与创新实践。与会者们分享了他们对于智能云原生和一体化发展的深刻见解,以及DB与AI如何协同创新,推动模型与架构的融合发展。
大会现场,极限科技创始人曾勇带来了令人瞩目的演讲,他详细介绍了下一代纯实时搜索引擎 INFINI Pizza。曾勇表示,随着大数据时代的到来,数据的实时处理与搜索成为了行业发展的重要方向。而 INFINI Pizza 正是为了满足这一需求而诞生的创新产品,它采用了先进的设计理念和架构实现,通过自有专利解决海量数据无限伸缩的需求,利用最新的算法和数据结构来充分释放现代硬件的威力,能够实现高效、准确的实时数据搜索能力,满足核心业务场景高并发低延迟的需求,为企业提供可靠稳定的实时搜索基础底座。
部分演讲内容
完整演讲内容请查看 PPT。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
2024 DTC 数据技术嘉年华 | 我们在现场等你
资讯动态 • searchkit 发表了文章 • 0 个评论 • 3751 次浏览 • 2024-04-03 18:42
导语
龙腾四海内,风云际会时。2024年4月12日至13日,北京新云南皇冠假日酒店将迎来一场盛会《第十三届数据技术嘉年华》。这是由墨天轮数据社区和中国数据库联盟(ACDU)携手主办的精彩盛事。本次嘉年华的主题是“智能·云原生·一体化——DB 与 AI 协同创新,模型与架构融合发展”将为您揭示数据技术的未来趋势。80余位行业领袖、技术精英、实践者和生态布道者将汇聚一堂,带来一场思想碰撞的盛宴。
极限科技(INFINI Labs)创始人 & CEO,Elasticsearch 中文社区(现搜索客)发起人兼社区主席曾勇先生应邀出席参加第十三届数据技术嘉年华盛会,并将于 4 月 13 日下午 15:00 在 NoSQL 数据库专题论坛上发表演讲,演讲主题:《下一代纯实时搜索引擎 Pizza》,为大家介绍当前最新搜索型数据库的行业发展趋势、前沿的技术方案、如何解决海量数据下的高并发低延迟实时检索需求等干货内容。
欢迎大家报名参会,共同探讨与交流。我在 DTC 现场等你!购票时输入优惠码(ZENGY)即可免费参会,数量有限,先到先得~
极限科技一直致力于推动数据技术的边界,不断突破创新。我们相信,通过与业内的顶级专家和领导者们的深入交流与合作,我们能够共同开创数据技术的美好未来。这场嘉年华将为我们提供一个珍贵的机会,与业界精英们面对面交流,共同探索数据技术的前沿领域。
大会议程
除了技术盛宴外,本次大会还为参会者准备了丰厚的大奖,其中主论坛的奖品更是高达上万元。此外,参会者们还可以前往各个厂商展台,领略产品魅力并感受最新最前沿的数据技术,完成集章任务后更有机会抽取千元大奖,相信一定能给您带来意想不到的惊喜!点击“查看原文”了解更多活动信息吧!
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
探索搜索引擎的新时代:Windows 安装 Easysearch 完全指南
Easysearch • Muses 发表了文章 • 0 个评论 • 1489 次浏览 • 2024-03-19 21:07
相信最近大家都已经听过Easysearch的名头,成功拿下了墨天轮搜索型数据库的榜首!什么?您不知道?那我再给您介绍下: INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。 相信看完了上面您已经对使用Easysearch有了想法,不要想,行动!我将带领您在windows环境中使用Easysearch,有几种安装方法可供选择!
方法一:使用Docker
对于已在Windows系统上安装了Docker的用户来说,通过Docker安装Easysearch是最直接高效的方法。接下来我将介绍Docker部署Easysearch的方法,如果没有安装Docker请跳过!
Docker 环境下使用 Easysearch
在使用 Docker 运行 Easysearch 之前,请确保已进行系统调优并安装好Docker服务,且Docker服务正常运行。
最快方式:启动临时的docker容器,可以从前台查看到admin的初始密码
```bash
docker run --name easysearch -p 9200:9200 dockerproxy.com/infinilabs/easysearch:latest
个性配置
从宿主机挂载数据目录及日志目录,并配置jvm内存为512m。
-
在宿主机上创建目录
bashCopy code sudo mkdir -p /data/easysearch/{data,logs}
-
修改目录权限
bashCopy code # 容器内es用户的uid为602,通过调整宿主机的目录权限,确保在容器内部es用户有权限读写挂载的数据卷 sudo chown -R 602.602 /data/easysearch
-
后台运行容器
bashCopy code docker run -d --restart always -p 9200:9200 \ -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \ -v /data/easysearch/data:/app/easysearch/data \ -v /data/easysearch/logs:/app/easysearch/logs \ --name easysearch --hostname easysearch \ dockerproxy.com/infinilabs/easysearch:latest
-
查看初始密码
bashCopy code # 由于以上容器是后台启动,需要通过日志找出admin的初始密码 docker logs easysearch 2>/dev/null | grep -w Usage
容器启停
-
启动容器
bashCopy code docker start easysearch
-
停止容器
bashCopy code docker stop easysearch
后续验证工作,请继续查看安装指南。
方法二:不使用HTTPS安装Easysearch
在某些情况下,您可能需要或者偏好不通过HTTPS方式进行安装。这种方法需要您手动下载并设置Easysearch及其依赖。
步骤1:下载并安装Easysearch
首先,手动下载 Easysearch 并将其解压到您希望的安装目录。
步骤2:下载并安装JDK
- 手动下载JDK安装包。
- 将JDK解压到Easysearch安装目录下。
-
将解压出来的JDK目录重命名为jdk。
步骤3:修改Easysearch配置
鉴于Windows默认不包含openssl,生成证书可能较为困难。您可以通过修改config/easysearch.yml文件来绕过证书验证:
security.enabled: false
方法三:通过git-for-windows安装
对于喜欢使用命令行的用户,可以通过安装git-for-windows,利用bash环境来执行安装命令。
步骤1:安装Easysearch
通过以下在线脚本命令安装Easysearch:
bashCopy code curl -sSL http://get.infini.cloud | bash -s -- -p easysearch -d /d/opt/easysearch
步骤2:下载并安装JDK
-
使用curl命令将JDK下载到指定目录:
bashCopy code curl -# https://release.infinilabs.com/easysearch/jdk/zulu17.42.19-ca-jdk17.0.7-win_x64.zip -o /d/opt/jdk.zip
- 解压JDK文件,并将解压后的目录重命名为jdk。
bashCopy code cd /d/opt/easysearch && unzip -q /d/opt/jdk.zip mv zulu* jdk
步骤3:设置JAVA_HOME环境变量
配置JAVA_HOME环境变量,以确保Easysearch能正确找到JDK。
bashCopy code export JAVA_HOME=/d/opt/easysearch/jdk
步骤4:初始化证书、密码和插件
执行以下命令,初始化所需的配置:
bashCopy code bin/initialize.sh
步骤5:运行Easysearch
最后,使用以下命令启动Easysearch:
bashCopy code bin/easysearch.bat
通过以上任一方法,您都应该能够成功在Windows系统上安装并运行Easysearch。请选择最适合您的需求和环境的安装方法。 请根据Easysearch和JDK的最新版本,适时更新上述命令和下载链接。接下来,请继续完成验证工作。
验证工作
为了保证Easysearch数据安全,初始化脚本会为admin用户生成随机的密码,如果使用Docker运行Easysearch或执行初始化脚本时同意记录初始密码到日志文件,则可在Docker日志文件或logs/initialize.log中找到admin用户对应的初始化密码。 由于初始脚本会自动覆盖集群上次使用的证书及内置的admin用户密码,请勿多次运行!如果您忘记了初始密码,可以通过内置的证书来进行密码重置。
bashCopy code # 根据初始化脚本生成的随机密码访问 Easysearch 的 REST API curl -ku admin:xxx https://localhost:9200
也可以在浏览器中输入网址 https://localhost:9200/,即可验证Easysearch是否完成启动。推荐使用INFINI Console来进行集群管理,功能更加强大和方便。 注:各类客户端及周边工具,如 Logstash、Filebeat 请使用7.10.2 oss版本来连接Easysearch。并打开config/easysearch.yml中的配置项elasticsearch.api_compatibility: true
如果你已经按照上面的步骤完成了安装,那么接下来请尽情的使用Easysearch吧!如果在安装过程中出现了问题的请私聊我!对了,希望在其他环境中部署Easysearch的也可以查询我们的安装指南,上面有详细的安装步骤!祝你好运!
INFINI Labs 产品更新 | Easysearch 1.7.1发布,改进跨集群复制的数据加载等
Easysearch • liaosy 发表了文章 • 0 个评论 • 1801 次浏览 • 2024-03-04 15:25
INFINI Labs 产品又更新啦~,包括 Console,Gateway,Agent 1.23.0 和 Easysearch 1.7.1。本次各产品更新了很多亮点功能,如 Console 优化实例管理中增加磁盘空闲空间显示,Easysearch 改进 HierarchyCircuitBreakerService 并添加断路器、改进跨集群复制的数据加载,增加对 source_reuse 索引的支持等。欢迎大家下载体验。
以下是本次更新的详细说明。
INFINI Easysearch v1.7.1
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。
Easysearch 本次更新如下:
Bug fix
- 修复 source_reuse 与字段别名冲突
- 改进 HierarchyCircuitBreakerService 并添加断路器
- 修复 _meta 不为空且 启用 source_reuse 时的映射解析错误
- 修复 source_reuse 下对多值还原不正确的问题
Improvements
- 改进 HierarchyCircuitBreakerService 并添加断路器
- 改进跨集群复制的数据加载,增加对 source_reuse 索引的支持
INFINI Console v1.23.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Bug fix
- 修复数据迁移中数据分片范围因精度导致数据溢出显示为负数
- 修复删除实例队列后消费的 Offset 未重置问题
- 修复网友提出的各种问题,如集群设置默认打开节点、索引采集等
Improvements
- 优化初始化配置向导,分步骤执行
- 优化实例管理中增加磁盘空闲空间显示
- 优化实例队列名称显示
INFINI Gateway v1.23.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Bug fix
- 修复删除实例队列后消费的 Offset 未重置问题
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
您还可以通过邮件联系我们:hello@infini.ltd
或者拨打我们的热线电话:(+86) 400-139-9200
欢迎加入 Discord 聊天室:https://discord.gg/4tKTMkkvVX
也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
INFINI Labs 产品更新 | Easysearch 新增分词插件、Gateway 支持邮件发送等功能
资讯动态 • liaosy 发表了文章 • 0 个评论 • 1649 次浏览 • 2023-07-21 17:28
INFINI Labs 产品又更新啦~,本次更新概要如下:Easysearch 新增了分词插件、优化了生命周期管理功能等;Gateway 新增 smtp 过滤器来支持邮件的发送,支持自动跳过因为异常关闭而损坏的磁盘队列文件等;Console 新增熔断器监控指标、新增矩形树图(Treemap)、优化了探针 Agent 指标采集和集群自动关联操作等。欢迎大家下载体验。
INFINI Easysearch v1.4.0
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。
Easysearch 本次更新如下:
Features
- 索引生命周期管理增加 wait_for_snapshot 操作,在删除索引之前,等待执行指定的快照管理策略,这样可以确保已删除索引的快照可用
- 增加 analysis-hanlp 分词插件
- 增加 jieba 分词插件
Bug fix
- 修复启用 index.source_reuse 时,对复杂多层 json 的 source 字段 解析不正确的 Bug
Improvements
- 更新索引生命周期管理 api 文档,增加策略应用和更新说明,增加 wait_for_snapshot 说明
- 执行
initialize.sh
命令时增加初始化确认提示,是否将 admin 密码记录日志
INFINI Gateway v1.17.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Features
- 新增 consumer Processor 来标准化订阅消息队列
- 新增 smtp 过滤器来支持邮件的发送
Bug fix
- 支持自动跳过因为异常关闭而损坏的磁盘队列文件
INFINI Console v1.4.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Features
- 新增熔断器监控指标
- 网关队列管理支持多选删除消费者
- 数据看板新增组件矩形树图
Bug fix
- 修复开发工具智能提示兼容性问题
- 修复探针列表状态显示异常的问题
- 修复探针列表分页不生效的问题
- 修复数据看板 统计函数显示不对的问题
- 修复探针下发采集指标配置重复的问题
- 修复数据看板设置过滤条件不生效的问题
- 修复主机列表探针状态不对的问题
- 修复网关管理删除队列不成功的问题
- 修复数据探索当前集群没索引时跳转的问题
- 修复数据看板编辑状态下点击事件的问题
Improvements
- 探针进程关联支持通过选择集群自动关联,简化操作
- 探针列表支持排序
- 探针支持向上滚动查看节点日志
- 采集监控指标添加 cluster_uuid 信息
- 数据看板支持配置指标排序
INFINI Agent v0.6.0
INFINI Agent 是 INFINI Console 的一个可选探针组件,负责采集和上传集群指标和日志等信息,并可通过 Console 管理。Agent 支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。
Agent 本次更新如下:
Features
- 采集监控指标添加 cluster_uuid 信息
Improvements
- 修复发现节点进程信息时获取不到最新集群配置的问题
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
- INFINI Gateway: https://github.com/infinilabs/gateway/issues
- INFINI Console: https://github.com/infinilabs/console/issues
- 下载地址: https://www.infinilabs.com/download
或者通过 Discord 渠道加入聊天室:https://discord.com/invite/tnZ8S5vQ
欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群讨论,或者扫码加入我们的知识星球一起学习交流。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
用极限网关实现ES容灾,简单!
Elasticsearch • yangmf2040 发表了文章 • 0 个评论 • 2255 次浏览 • 2023-07-20 10:33
身为 IT 人士,大伙身边的各种系统肯定不少吧。系统虽多,但最最最重要的那套、那几套,大伙肯定是捧在手心,关怀备至。如此重要的系统,万一发生故障了且短期无法恢复,该如何保障业务持续运行? 有过这方面思考或经验的同学,肯定脱口而出--切灾备啊。 是的,接下来我来介绍下我们的 ES 灾备方案。当然如果你有更好的,请使用各种可用的渠道联系我们。
总体设计
通过极限网关将应用对主集群的写操作,复制到灾备集群。应用发送的读请求则直接转发到主集群,并将响应结果转发给应用。应用对网关无感知,访问方式与访问 ES 集群一样。
方案优势
- 轻量级
极限网关使用 Golang 编写,安装包很小,只有 10MB 左右,没有任何外部环境依赖,部署安装都非常简单,只需要下载对应平台的二进制可执行文件,启动网关程序的二进制程序文件执行即可。
- 跨版本支持
极限网关针对不同的 Elasticsearch 版本做了兼容和针对性处理,能够让业务代码无缝的进行适配,后端 Elasticsearch 集群版本升级能够做到无缝过渡,降低版本升级和数据迁移的复杂度。
- 高可用
极限网关内置多种高可用解决方案,前端请求入口支持基于虚拟 IP 的双机热备,后端集群支持集群拓扑的自动感知,节点上下线能自动发现,自动处理后端故障,自动进行请求的重试和迁移。
- 灵活性
主备集群都是可读可写,切换迅速,只需切换网关到另一套配置即可。回切灵活,恢复使用原配置即可。
架构图
网关程序部署
下载
根据操作系统和平台选择下面相应的安装包: 解压到指定目录:
mkdir gateway
tar -zxf xxx.gz -C gateway
修改网关配置
在此 下载 网关配置,默认网关会加载配置文件 gateway.yml ,如果要指定其他配置文件使用 -config 选项指定。 网关配置文件内容较多,下面展示必要部分。
#primary
PRIMARY_ENDPOINT: http://192.168.56.3:7171
PRIMARY_USERNAME: elastic
PRIMARY_PASSWORD: password
PRIMARY_MAX_QPS_PER_NODE: 10000
PRIMARY_MAX_BYTES_PER_NODE: 104857600 #100MB/s
PRIMARY_MAX_CONNECTION_PER_NODE: 200
PRIMARY_DISCOVERY_ENABLED: false
PRIMARY_DISCOVERY_REFRESH_ENABLED: false
#backup
BACKUP_ENDPOINT: http://192.168.56.3:9200
BACKUP_USERNAME: admin
BACKUP_PASSWORD: admin
BACKUP_MAX_QPS_PER_NODE: 10000
BACKUP_MAX_BYTES_PER_NODE: 104857600 #100MB/s
BACKUP_MAX_CONNECTION_PER_NODE: 200
BACKUP_DISCOVERY_ENABLED: false
BACKUP_DISCOVERY_REFRESH_ENABLED: false
PRIMARY_ENDPOINT:配置主集群地址和端口
PRIMARY_USERNAME、PRIMARY_PASSWORD: 访问主集群的用户信息
BACKUP_ENDPOINT:配置备集群地址和端口
BACKUP_USERNAME、BACKUP_PASSWORD: 访问备集群的用户信息
运行网关
前台运行 直接运行网关程序即可启动极限网关了,如下:
./gateway-linux-amd64
后台运行
./gateway-linux-amd64 -service install
Success
./gateway-linux-amd64 -service start
Success
卸载服务
./gateway-linux-amd64 -service stop
Success
./gateway-linux-amd64 -service uninstall
Success
灾备功能测试
在灾备场景下,为保证数据一致性,对集群的访问操作都通过网关进行。注意只有 bulk API 的操作才会被复制到备集群。 在此次测试中,网关灾备配置功能为:
- 主备集群正常时
读写请求正常执行; 写请求被记录到队列,备集群实时消费队列数据。
- 当主集群故障时
写入请求报错,主备集群都不写入数据; 查询请求转到备集群执行,并返回结果给客户端。
- 当备集群故障时
读写请求都正常执行; 写操作记录到磁盘队列,待备集群恢复后,自动消费队列数据直到两个集群一致。
主备集群正常时写入、查询测试
写入数据
# 通过网关写入数据
curl -X POST "localhost:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "create" : { "_index" : "test", "_id" : "2" } }
{ "field2" : "value2" }
'
查询数据
# 查询主集群
curl 192.168.56.3:7171/test/_search?pretty -uelastic:password
# 查询备集群
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin
# 查询网关,网关转发给主集群执行
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password
主备集群都已写入数据,且数据一致。通过网关查询,也正常返回。
删除和更新文档
# 通过网关删除和更新文档
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "delete" : { "_index" : "test", "_id" : "1" } }
{ "update" : {"_id" : "2", "_index" : "test"} }
{ "doc" : {"field2" : "value2-updated"} }
'
查询数据
# 查询主集群
curl 192.168.56.3:7171/test/_search?pretty -uelastic:password
# 查询备集群
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin
两个集群都已执行删除和更新操作,数据一致。
主集群故障时写入、查询测试
为模拟主集群故障,直接关闭主集群。
写入数据
# 通过网关写入数据
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "3" } }
{ "field3" : "value3" }
{ "create" : { "_index" : "test", "_id" : "4" } }
{ "field4" : "value4" }
'
写入数据报错
查询数据
# 通过网关查询,因为主集群不可用,网关将查询转发到备集群执行
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password
正常查询到数据,说明请求被转发到了备集群执行。
备集群故障时写入、查询测试
为模拟备集群故障,直接关闭备集群。
写入数据
# 通过网关写入数据
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "5" } }
{ "field5" : "value5" }
{ "create" : { "_index" : "test", "_id" : "6" } }
{ "field6" : "value6" }
'
数据正常写入。
查询数据
# 通过网关查询
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password
查询成功返回。主集群成功写入了两条新数据。同时此数据会被记录到备集群的队列中,待备集群恢复后,会消费此队列追数据。
恢复备集群
启动备集群。
查询数据
等待片刻或通过 INFINI Console 确定网关队列消费完毕后,查询备集群的数据。
(生产和消费 offset 相同,说明消费完毕。)
# 查询备集群的数据
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin
备集群启动后自动消费队列数据,消费完后备集群数据达到与主集群数据一致。
灾备切换
测试了这么多,终于到切换的时刻了。切换前我们判断下主系统是否短期无法修复。
如果我们判断主用系统无法短时间恢复,要执行切换。非常简单,我们直接将配置文件中定义的主备集群互换,然后重启网关程序就行了。但我们推荐在相同主机上另部署一套网关程序--网关B,先前那套用网关A指代。网关B中的配置文件把原备集群定义为主集群,原主集群定义为备集群。若要执行切换,我们先停止网关A,然后启动网关B,此时应用连接到网关(端口不变),就把原备系统当作主系统使用,把原主系统当作备系统,也就完成了主备系统的切换。
灾备回切
当原主集群修复后,正常启动,就会从消费队列追写修复期间产生数据直到主备数据一致,同样我们可通过 INFINI Console 查看消费的进度。如果大家还是担心数据的一致性,INFINI Console 还能帮大家做[校验数据]()任务,做到数据完全一致后(文档数量及文档内容一致),才进行回切。
回切也非常简单,停止网关B,启动网关A即可。
网关高可用
网关自带浮动 IP 模块,可进行双机热备。客户端通过 VIP 连接网关,网关出现故障时,VIP 漂移到备网关。
视频教程戳这里。
这样的优点是简单,不足是只有一个网关在线提供服务。如果想多个网关在线提供服务,则需搭配分布式消息系统一起工作,架构如下。
前端通过负载均衡将流量分散到多个在线网关,网关将消息存入分布式消息系统。此时,网关可看作无状态应用,可根据需要扩缩规模。
以上就是我介绍的ES灾备方案,是不是相当灵活了。有问题还是那句话 Call me 。
关于极限网关
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway,可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
给 ES 插上向量检索的翅膀 | DataFunSummit 2023 峰会演讲内容速达
Elasticsearch • liaosy 发表了文章 • 0 个评论 • 1506 次浏览 • 2023-07-12 18:37
近日,由 DataFun 主办的 DataFunSummit 2023 数据基础架构峰会 圆满落下帷幕,本次峰会邀请了腾讯、百度、字节、极限科技、Zilliz 等众多企业技术专家为大家带来分布式存储以及向量数据库的架构原理、性能优化与实践解析分享。
在 向量数据库架构与实践论坛 中,极限科技搜索引擎研发工程师张磊受邀出席做了《给 ES 插上向量检索的翅膀》的主题演讲。据介绍,本次演讲主要介绍了 Elasticsearch(ES)与向量技术的融合,展示其在不同行业中的应用场景和优势,同时也对 ES 与向量的技术细节进行详细讨论,并通过具体案例演示如何利用向量提升搜索能力。
讲师介绍
张磊,极限科技 Easysearch 引擎研发工程师,2013 年开始接触 Elasticsearch,10 余年搜索相关经验,之前主要做一些围绕 Elasticsearch 在日志检索和公安大数据相关业务的开发,对 Elasticsearch 和 Lucene 源码比较熟悉,目前专注于公司内部搜索产品的开发。
《给 ES 插上向量检索的翅膀》PPT 内容
更多 PPT 内容参见 https://elasticsearch.cn/slides/322
关于 Easysearch
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。
【INFINI Workshop 上海站】7 月 27 日一起动手实验玩转 Easysearch
资讯动态 • liaosy 发表了文章 • 1 个评论 • 1968 次浏览 • 2023-07-07 16:30
INFINI Easysearch 完成龙芯架构兼容性认证
Easysearch • liaosy 发表了文章 • 0 个评论 • 2107 次浏览 • 2023-06-06 17:06
近日,极限科技旗下软件产品 INFINI Easysearch 搜索引擎软件 V1.0 在龙芯中科的龙芯 3C5000L 平台上完成兼容性测试,功能与稳定性良好,并获得龙架构兼容互认证书。
龙芯是中国自主可控计算机处理器的代表品牌之一。龙芯处理器是由中国科学院计算技术研究所自主研发的一款高性能、低功耗、安全可靠的处理器。龙芯 3C5000L 是龙芯中科专门面向服务器领域的通用处理器。基于龙芯 3A5000 处理器,片上集成共 16 个高性能 LA464 处理器核,采用全新的龙芯自主指令系统(LoongArch®),在提高集成度的同时保持系统和软件与龙芯 3A5000 完全兼容。
极限科技研发的 INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。 同时也是一款具备自主可控的分布式近实时搜索型数据库产品,具备高性能、高可用、弹性伸缩、高安全性等特性,具备支持丰富的个性化搜索及聚合分析能力,可部署在物理机、虚拟机、容器、私有云和公有云,能承载 PB 级别的海量业务数据,为金融核心系统、运营商、制造业和政企业务系统提供安全、稳定、可靠的快速检索和实时数据探索分析能力,可满足不同业务场景的各项复杂需求。
此次通过龙芯架构(LoongArch)的兼容性测试,有效验证了 Easysearch 对于国产化 CPU 的互操作性与可靠性。此外,Easysearch 也实现了对麒麟、统信、欧拉等国产操作系统的支持。未来,极限科技将继续加强与各大厂商的合作,深化对国产化软硬件技术栈的支持能力,为用户提供更加优质、稳定、高效、安全的搜索服务。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
详情参见官网:https://www.infinilabs.com
招聘搜索引擎内核研发工程师(Rust方向)
求职招聘 • medcl 发表了文章 • 0 个评论 • 5454 次浏览 • 2023-01-28 17:33
- 设计并开发下一代实时搜索引擎 ;
- 持续优化实现方案,改进组件性能 ;
- 保证工程质量和开发效率 。
- 3 年以上搜索引擎开发经验,计算机相关专业,本科及以上学历 ;
- 熟练掌握 Rust/C/C++/Golang 中的一种或多种语言,有 Rust 实际开发经验者优先 ;
- 熟悉 Linux 操作系统,了解Linux系统常用操作命令, 能基于shell编写脚本 ;
- 熟悉 Linux 下内存管理机制,低延迟、高并发无锁化编程 ;
- 熟悉 TCP/IP、Socket、HTTP 等网络协议 ;
- 具有良好的沟通、团队协作能力;
- 熟悉常见分布式算法,有大规模分布式系统开发经验优先;
- 较好的英文阅读和写作能力,具备比较强的逻辑思维能力;
- 良好的编码习惯和技术文档能力,具备持续输出的能力;
- 工作地点不限 。
- 有自己的博客、Github、开源项目优先 ;
- 具有相关搜索引擎开发工作经验者优先 ;
- 熟悉各类索引结构;
- 熟悉 LSM-Tree、B+Tree、RocksDB、LevelDB 优先 ;
- 有较强的学习能力,愿意致力于新技术的研究 。
社区日报 第504期 (2019-01-09)
社区日报 • elk123 发表了文章 • 0 个评论 • 3963 次浏览 • 2019-01-09 13:42
Day22 - 熟练使用ES离做好搜索还差多远?
Advent • nodexy 发表了文章 • 2 个评论 • 8641 次浏览 • 2018-12-21 17:27
搜索引擎作为互联网发展历史中一个非常典型的产品/业务形态,时至今日并没有太大的突破性变化;主流形态可以划分为大搜、垂搜、企业级搜索和站内/app内搜索等。除了Google, Yahoo, Bing, Ask 等以及国内百度、搜狗、360、神马等是人们熟识的大搜之外,非业内人士还真不知道其他还有哪些公司以及有哪些搜索产品或业务场景。 实际上,在信息爆炸的时代,几乎每家有点儿规模的公司都或多或少要涉及到搜索引擎,最起码你需要接触SEO/SEM。本文将从非大搜企业的搜索需求出发,并基于开源技术栈来介绍和探讨搜索引擎在实践中的几个核心任务及其主要解决思路。同时为了避免重复,本文以外链形式引用了大量网络已有的国内外公开资料,方便大家参考,需要注意的是部分内容可能会随着时间推移而过期或链接失效。 提到开源搜索引擎,在Java技术栈里以Lucene, Solr/SolrCloud及Elasticsearch为代表的几个项目可能最为流行。本文的写作初衷是解答”熟练使用ES等开源搜索引擎解决方案以后,要如何才能做好搜索产品/业务?“ 希望对你有所帮助,如果你有关于此话题的更多实践经验或不同见解,欢迎留言评论交流。 1. 做好搜索引擎意味着什么? 有一位同行的文章总结了好的搜索引擎的衡量维度:作者:杨振涛 搜索引擎架构师@vivo 首次发布:Elasticsearch中文社区 发布日期:2018-12-22
- 相关性
- 体验
- 性能
- 搜索前:搜索框,搜索入口,热搜榜/飙升榜/大家都在搜,搜索发现,默认搜索词,历史搜索记录,猜你想搜,分类搜索,语音输入搜索/图片搜索; 广告位
- 搜索中:搜索联想直达,搜索联想词,输入纠错,关键词匹配高亮
- 搜索后:搜索结果列表,列表页推荐/广告,特形展示,列表穿插,搜了还搜,搜索详情页,详情页搜索推荐,无结果及少结果填充 ,筛选条件/筛选器,自主排序,列表样式切换(宫格 | 列表)
- 单维度排序:顾名思义按照单个维度来排序,没有任何复杂性可言,在召回结果集不太大的情况下实时排序即可。
- 优先级排序:相对单维度排序而已一般是先按维度A排,当A的排序依据一样或相等时再按维度B排序,以此类推。
- 加权排序 :针对多个维度或特征,赋予不同权重,并按求和之后的得分来排序;实践中通常会采用分层加权排序(第一层加权排序之后,得到不少于2个得分,继续加权后排序),或者分组加权排序(第一层分组来加权排序后,对所得到的得分可能按业务需求进行非求和类的运算比如乘法,再按最终得分排序)的策略。 加权排序的难点在于,如何设置并持续优化这些权重,通常会建模为典型的机器学习问题来拟合。
- 机器学习排序 :即所谓LTR,根据用户点击或人工标注数据集建立学习目标,然后通过特征工程来挖掘与目标有关系的一系列特征,并建立学习模型,通过训练集获得模型参数,以该组参数为基准做预测,上线后再基于用户点击数据持续优化该模型的参数。LTR是一个通用方法的称谓,不是某一个具体算法的名称,具体算法名称参见下文。
- MART (Multiple Additive Regression Trees, a.k.a. Gradient boosted regression tree)
- RankNet
- RankBoost
- AdaRank
- Coordinate Ascent
- LambdaMART
- ListNet
- Random Forests
- vivo互联网技术: 搜索引擎与其他机器学习有何不同 https://mp.weixin.qq.com/s/uWg3m5xIGBAKNqqDmxzw2Q
- InfoQ:在 Elasticsearch 中应用机器学习排序 LTR https://www.infoq.cn/article/w ... earch
- InfoQ:认识机器学习排序 LTR https://www.infoq.cn/article/m ... g-ltr
- InfoQ:机器学习排序 LTR 入门——线性模型 https://www.infoq.cn/article/2 ... model
- 搜索质量概述 https://opensourceconnections. ... lity/
- nDCG排序打分工具 https://opensourceconnections. ... epid/
- 百度众测任务: Query与广告之间的相关性评估规则 http://test.baidu.com/mark/task/view/id/2584923
- Search Quality Evaluation Tool for Apache Solr & Elasticsearch search-based infrastructures https://github.com/SeaseLtd/ra ... uator
![](https://img12.360buyimg.com/n1 ... c.jpg)
高薪聘请ES(elasticsearch)搜索研发工程师
求职招聘 • mao13868891931 发表了文章 • 2 个评论 • 6023 次浏览 • 2018-06-07 17:49