10倍提升效率,号称取代Elasticsearch?

[Manticore Search](https://github.com/manticoresoftware/manticoresearch/) 是一个使用 C++ 开发的高性能搜索引擎,创建于 2017 年,其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx,显着改进了它的功能,修复了数百个错误,几乎完全重写了代码并保持开源。这一切使 Manticore Search 成为一个现代,快速,轻量级和功能齐全的数据库,具有出色的全文搜索功能。

官网

Manticore Search – easy-to-use open-source fast database for search

介绍

在这里插入图片描述

  • 对于小型数据集,比Elasticsearch快15倍
  • 对于中等大小的数据,比Elasticsearch快5倍
  • 对于大型数据,比Elasticsearch快4倍
  • 在单个服务器上进行数据导入时,最大吞吐量比Elasticsearch快最多2倍

主要特点

强大而快速的全文搜索,适用于小型和大型数据集

超过20个全文运算符和超过20个排名要素

  • 自定义排名
  • 词干提取
  • 词形还原
  • 停用词
  • 同义词
  • 词形
  • 字符和单词级别的高级标记化
  • 正确的中文分词
  • 文本突出显示

多线程

Manticore Search 利用智能查询并行化来缩短响应时间并在需要时充分利用所有 CPU 核心。

基于成本的查询优化器

基于成本的查询优化器使用有关索引数据的统计数据来评估给定查询的不同执行计划的相对成本。这使得优化器能够确定检索所需结果的最有效计划,同时考虑索引数据的大小、查询的复杂性和可用资源等因素。

存储选项

Manticore 提供行式和列式存储选项,以适应各种大小的数据集。传统和默认的行存储选项适用于所有大小的数据集(小型、中型和大型),而列式存储选项则通过 Manticore 列式库提供,适用于更大的数据集。这些存储选项之间的主要区别在于,行式存储需要将所有属性(不包括全文字段)保留在 RAM 中以获得最佳性能,而列式存储则不需要,因此 RAM 消耗较低,但有可能会稍微降低性能。性能较慢(如https://db-benchmarks.com/上的统计数据所示)。

自动二级索引

Manticore Columnar Library使用分段几何模型索引,它利用了索引键与其在内存中的位置之间的学习映射。这种映射的简洁性,加上独特的递归构造算法,使得 PGM 索引成为一种在空间上以数量级优势统治传统索引的数据结构,同时仍然提供最佳的查询和更新时间性能。默认情况下,所有数字字段的二级索引均处于开启状态。

SQL优先

Manticore 的原生语法是 SQL,它支持 SQL over HTTP 和 MySQL 协议,允许通过任何编程语言的流行 mysql 客户端进行连接。

基于 HTTP 的 JSON

为了采用更具编程性的方法来管理数据和模式,Manticore 提供了HTTP JSON协议,类似于 Elasticsearch 的协议。

与 Elasticsearch 兼容的写入

您可以执行与 Elasticsearch 兼容的插入和替换JSON 查询,从而可以将 Manticore 与 Logstash(版本 < 7.13)、Filebeat 和 Beats 系列的其他工具等工具一起使用。

声明式和命令式模式管理

在线或通过配置文件轻松创建、更新和删除表。

C++ 的优点和 PHP 的便利

Manticore Search 守护进程是用 C++ 开发的,提供快速的启动时间和高效的内存利用率。低级优化的利用进一步提高了性能。另一个关键组件称为Manticore Buddy,它是用 PHP 编写的,用于实现不需要快速响应时间或极高处理能力的高级功能。尽管贡献 C++ 代码可能会带来挑战,但使用 Manticore Buddy 添加新的 SQL/JSON 命令应该是一个简单的过程。

实时插入

新添加或更新的文档可以立即阅读。

内置复制和负载平衡Built-In replication and load balancing

数据可以跨服务器和数据中心分布,任何 Manticore 搜索节点既充当负载均衡器又充当数据节点。Manticore使用Galera库实现虚拟同步多主,确保所有节点之间的数据一致性,防止数据丢失,并提供卓越的复制性能。

内置备份功能Built-in backup capabilities

Manticore 配备了外部工具和 SQL 命令来简化备份和恢复数据的过程。

开箱即用的数据同步Out-of-the-box data sync

Manticore 的工具和全面的配置语法可以轻松同步来自 MySQL、PostgreSQL、兼容 ODBC 的数据库、XML 和 CSV 等源的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/52890.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SprinMVC获取请求参数

SprinMVC获取请求参数 Spring MVC 提供的获取请求参数的方式 通过 HttpServletRequest 获取请求参数通过控制器方法的形参获取请求参数使用 RequestParam 注解获取请求参数通过实体类对象获取请求参数&#xff08;推荐&#xff09; 通过ServlstAPI获取 将HttpServletRequest…

Docker-Compose编排与部署

目录 Docker Compose Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境 Docker Compose Docker Compose 的前身是 Fig&#xff0c;它是一个定义及运行多个 Dock…

CNN、数据预处理、模型保存

目录 CNN代码读取数据搭建CNN训练网络模型 数据增强迁移学习图像识别策略数据读取定义数据预处理操作冻结resnet18的函数把模型输出层改成自己的设置哪些层需要训练设置优化器和损失函数训练开始训练再训练所有层关机了&#xff0c;再开机&#xff0c;加载训练好的模型 CNN 代码…

Ansible —— playbook 剧本

Ansible —— playbook 剧本 一、playbook的概述1.playbook简介2.什么是Ansible playbook剧本&#xff1f;3.Ansible playbook剧本的特点4.如何使用Ansible playbook剧本&#xff1f;5.playbooks 本身由以下各部分组成 二、playbook示例1.运行playbook2.定义、引用变量3.指定远…

Hum Brain Mapp:用于功能连接体指纹识别和认知状态解码的高精度机器学习技术

摘要 人脑是一个复杂的网络&#xff0c;由功能和解剖上相互连接的脑区组成。越来越多的研究表明&#xff0c;对脑网络的实证估计可能有助于发现疾病和认知状态的生物标志物。然而&#xff0c;实现这一目标的先决条件是脑网络还必须是个体的可靠标记。在这里&#xff0c;本研究…

problem(3):python IDE和python解释器

为什么写这篇文章呢&#xff1f;遇到了下面的问题&#xff0c;相同的解释器&#xff0c;如果运行angr库的代码&#xff0c;会出现 这样的情况&#xff0c;但是用spyder IDE 会显示正常&#xff0c;很奇怪 应该就是IDE的原因 IDE的循环导入问题 检查IDE配置&#xff1a; 如果可…

winform学习(3)-----Windows窗体应用和Windows窗体应用(.Net Framework)有啥区别?

1.模板选择 在学习winform的时候总是会对这两个应用不知道选择哪个&#xff1f;而且在学习的时候也没有具体的说明 首先说一下我是在添加控件的时候出现了以下问题 对于使用了Windows窗体应用这个模板的文件在工具箱中死活不见控件。 在转换使用了Windows窗体应用(.NET Fram…

搭建Django+pyhon+vue自动化测试平台

Django安装 使用管理员身份运行pycharm使用local 1 pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple 检查django是否安装成功 1 python -m django --version 创建项目 1 1 django-admin startproject test cd 切换至创建的项目中启动django项目…

LeetCode每日一题Day5——21. 合并两个有序链表

✨博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;算法修炼之练气篇&#xff08;C\C版&#xff09; &#x1f353;专栏&#xff1a;算法修炼之筑基篇&#xff08;C\C版&#xff09; &#x1f433;专栏&#xff1a;算法修炼之练气篇&#xff08;Python版&#xff09; …

通过51单片机实现直流电机调速

一、项目背景及目的 随着各种工业生产设备和机械设备的广泛使用&#xff0c;直流电机调速技术的研究和应用越来越受到人们的重视&#xff0c;具有广泛的应用前景。本项目通过51单片机实现直流电机调速功能&#xff0c;为实际工程应用提供一个可靠和有效的调速方案。 二、设计思…

反向迭代器

typedef ReverseIterator<iterator, T&, T*> reverse_iterator;//反向迭代器 typedef ReverseIterator<iterator, const T&, const T*> const_reverse_iterator; reverse_iterator…

拉普拉斯平滑算法

原理 最简单的拉普拉斯平滑算法的原理是将每个顶点都移动到相邻顶点的平均位置上。公式 示例&#xff08;UE5代码片段&#xff09; 参考 https://blog.csdn.net/mrbaolong/article/details/105859109