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.mzph.cn/news/23856.shtml

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

相关文章

Charles抓包工具使用(一)(macOS)

Fiddler抓包 | 竟然有这些骚操作&#xff0c;太神奇了&#xff1f; Fiddler响应拦截数据篡改&#xff0c;实现特殊场景深度测试&#xff08;一&#xff09; 利用Fiddler抓包调试工具&#xff0c;实现mock数据特殊场景深度测试&#xff08;二&#xff09; 利用Fiddler抓包调试工…

Linux下TCP网络服务器与客户端通信程序入门

文章目录 目标服务器与客户端通信流程TCP服务器代码TCP客户端代码 目标 实现客户端连接服务器&#xff0c;通过终端窗口发送信息给服务器端&#xff0c;服务器接收到信息后对信息数据进行回传&#xff0c;客户端读取回传信息并返回。 服务器与客户端通信流程 TCP服务器代码 …

etcd

文章目录 etcd单机安装设置键值对watch操作读取键过往版本的值压缩修订版本lease租约&#xff08;过期机制&#xff09;授予租约撤销租约keepAlive续约获取租约信息 事务基于etcd实现分布式锁原生实现官方 concurrency 包实现 服务注册与发现Go 操作 Etcd 参考 etcd etcd 是一…

02|Oracle学习(数据类型、DDL)

1. 数据类型&#xff1a; 通常为&#xff1a;字符型、数值型、日期型以及大字段型大字段型&#xff1a;存放大数据及文件。 存储大数据时&#xff0c;基本上blob就能满足。 2. DDL&#xff08;数据库定义语言&#xff09; 主要包括对数据库对象的创建、删除及修改的操作。…

2.文件的逻辑结构

第四章 文件管理 2.文件的逻辑结构 顺序文件采用顺序存储则意味着各个逻辑上相邻的记录在物理上也是相邻的存储的。所以如果第0号记录的逻辑地址为0的话&#xff0c;则i号记录的逻辑为i *L。 特别的如果这个定长记录的顺序文件采用串结构&#xff0c;也就是这些记录的顺序和他…

go 结构体 - 值类型、引用类型 - 结构体转json类型 - 指针类型的种类 - 结构体方法 - 继承 - 多态(interface接口) - 练习

目录 一、结构体 1、python 与 go面向对象的实现&#xff1a; 2、初用GO中的结构体&#xff1a;&#xff08;实例化一个值类型的数据&#xff08;结构体&#xff09;&#xff09; 输出结果不同的三种方式 3、实例化一个引用类型的数据&#xff08;结构体&#xff09; 4、…

使用vscode+ssh免密远程Linux

使用vscodessh免密远程Linux 使用 SSH 密钥对&#xff1a;使用 SSH Agent&#xff1a;ssh-agent的使用场景 使用 SSH 密钥对&#xff1a; 确保你的本地机器上已经生成了 SSH 密钥对。如果没有&#xff0c;请使用以下命令生成密钥对&#xff1a; ssh-keygen -t rsa这将在 ~/.ssh…

Tomcat添加第三方jar包、如何在IDEA中启动部署Web模板

前言:公司最近维护老项目,是最原始的web项目,servlet和jsp结合的web项目,启动的时候配置了好几遍, 都起不来,很折磨人,这个文档比较全配置一遍准备工作 首先 拉取代码: git clone xxx.git ,如需要别的操作,自行baidu 也可以在idea中拉取第一步File ->Project Structure->…

Redis两种持久化方案RDB持久化和AOF持久化

Redis持久化 Redis有两种持久化方案&#xff1a; RDB持久化AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file&#xff08;Redis数据备份文件&#xff09;&#xff0c;也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启…

VSCode插件Todo Tree的使用

在VSCode中安装插件Todo Tree。按下快捷键ctrlshiftP&#xff0c;输入setting.jspn&#xff0c;选择相应的配置范围&#xff0c;我们选择的是用户配置 Open User Settings(JSON)&#xff0c;将以下代码插入其中。 //todo-tree 标签配置从这里开始 标签兼容大小写字母(很好的功…

html2canvas以及new QRCode生成带有二维码的海报的问题

全局定义new QRCode var posterQrCode new QRCode(document.getElementById("qrcode"), {// text: data,width: 82,height: 82,correctLevel: 3 // 解决二维码识别不高的问题}); 取消修改的时候给posterQrCode传值posterQrCode.makeCode(data);解决二维码海报弹框出…

Spring Boot 集成Seata

Seata的集成方式有&#xff1a; 1. Seata-All 2. Seata-Spring-Boot-Starter 3. Spring-Cloud-Starter-Seata 本案例使用Seata-Spring-Boot-Starter演示&#xff1a; 第一步&#xff1a;下载Seata 第二步&#xff1a;为了更好看到效果&#xff0c;我们将Seata的数据存储改…

linuxARM裸机学习笔记(2)----汇编LED灯实验

MX6ULL 的 IO IO的复用功能 这里的只使用了低五位&#xff0c;用来配置io口&#xff0c;其中bit0~bit3(MUX_MODE)就是设置 GPIO1_IO00 的复用功能的&#xff0c;GPIO1_IO00 一共可以复用为 9种功能 IO&#xff0c;分别对应 ALT0~ALT8。每种对应了不同的功能 io的属性配置 HY…

SolidWorks 3D Interconnect介绍

目前市面上有的三维设计软件有很多&#xff0c;如UG、Pro/E、CATIA等&#xff0c;而且每个三维设计软件都会生成自己文件格式。由于产品设计的原因&#xff0c;我们避免不了的会需要去使用不同三维设计软件的文件&#xff0c;这对于工程师来说其实是一件比较麻烦的事。 为什么…

代码随想录第38天 | 动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

动态规划理论基础 如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的。 动态规划解题步骤&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定…

[腾讯云Cloud Studio实战训练营]基于Cloud Studio完成图书管理系统

[腾讯云Cloud Studio实战训练营]基于Cloud Studio完成图书管理系统 ⭐前言&#x1f31c;Cloud Studio产品介绍1.登录2.创建工作空间3.工作空间界面简介4.环境的使用 ⭐实验实操&#x1f31c;Cloud Studio实现图书管理系统1.实验目的 2. 实验过程2.实验环境3.源码讲解3.1添加数据…

下载Windows 10光盘镜像(ISO文件)

文章目录 下载Windows 10镜像文件 下载Windows 10镜像文件 打开微软官网下载地址 立即下载工具 找到下载工具&#xff0c;双击运行&#xff0c;等待 接受条款&#xff0c;等待 选择为另一台电脑安装介质 选择Windows10&#xff0c;下一步 选择ISO文件&#xff0c;…

后端开发1.项目的搭建

创建maven项目 pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.ap…

【2023.8】docker一键部署wvp-GB28181-pro和ZLMediaKit过程全记录

安装docker 使用的操作系统是ubuntu20.04 如何在 Ubuntu 20.04 上安装和使用 Docker https://developer.aliyun.com/article/762674 docker拉取配置好的ZLMediaKIt和wvp-GB28181-pro docker pull 648540858/wvp_pro第一次运行 docker一键运行ZLMediaKIt和wvp-GB28181-pro …

spring boot中web容器配置

web容器配置 spring boot 默认的web容器是 tomcat&#xff0c;如果需要换成其他的 web 容器&#xff0c;可以如下配置。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!-- 默…