Manticore Search(es轻量级替代)

概念:

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

Manticore Search目前在GitHub收获3.7k star,拥有大批忠实用户。同时开源者在GitHub介绍中明确说明了该项目是是Elasticsearch的良好替代品,在不久的将来就会取代ELK中的E。

价值:

与其他解决方案的区别在于:

  • 它非常快,因此比其他替代方案更具成本效益。例如,Manticore:
    • 对于小型数据,比MySQL快182倍(可重现)
    • 对于日志分析,比Elasticsearch快29倍(可重现)
    • 对于小型数据集,比Elasticsearch快15倍(可重现)
    • 对于中等大小的数据,比Elasticsearch快5倍(可重现)
    • 对于大型数据,比Elasticsearch快4倍(可重现)
    • 在单个服务器上进行数据导入时,最大吞吐量比Elasticsearch快最多2倍(可重现)

特点

       高性能: Manticore Search专注于提供快速、高效的全文搜索。它通过使用内存索引和并行查询来优化性能。

       实时索引更新: Manticore支持实时索引更新,允许您在不中断服务的情况下更新索引。这对于需要实时更新数据的应用程序非常重要。

       分布式搜索: Manticore支持分布式搜索,可以在多个节点上运行,并在它们之间分配查询负载,从而提高整体性能和可扩展性。

       支持SQL查询语言: Manticore使用SQL作为主要的查询语言,这使得对于熟悉SQL的开发者来说更容易上手。它还提供了丰富的查询语法和功能,以满足不同的搜索需求。

       多语言支持: Manticore支持多种语言的全文搜索,包括中文、俄语等。

       开源: Manticore是开源软件,可以根据需要进行修改和定制。

       灵活的架构: Manticore的架构设计旨在使其易于部署和扩展,适应各种规模的应用程序

应用场景:

       电子商务搜索: Manticore适用于电子商务网站,用于实时搜索和过滤产品信息。

       内容管理系统: 对于需要强大全文搜索功能的内容管理系统,Manticore是一个不错的选择。

       日志分析: 由于其实时索引更新和高性能特性,Manticore适用于处理大规模的日志数据,支持快速的搜索和分析。

       社交媒体应用: 对于需要实时搜索和过滤大量用户生成的内容的社交媒体应用程序,Manticore也是一个合适的选择。

       在线文档搜索: 对于需要在大量文档中进行快速搜索的应用,Manticore可以提供高效的解决方案。

参考:

  • https://manticoresearch.com/blog/manticore-alternative-to-elasticsearch/
  • GitHub - manticoresoftware/manticoresearch: Easy to use open source fast database for search | Good alternative to Elasticsearch now | Drop-in replacement for E in the ELK soon

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

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

相关文章

MySQL第四次作业

1.修改student表中年龄字段属性,数据类型由int改变为smallint 2.为course表中cno课程学号设置索引,并查看索引 (3)为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX (4&#xff0…

PHP框架详解-symfony

一、介绍 Symfony是一个用于构建Web应用程序的PHP框架。它是一个开源框架,由Fabien Potencier于2005年创建。 Symfony框架具有许多特性和优势,以下是一些重要的特性: 可重复使用的组件:Symfony框架基于一系列可重复使用的组件,这些组件可以独立于框架使用,并且可以被其…

mysql对数据库的增删改

目录 DML语句: 增加数据(insert语句) 增加数据(insert into select) 修改数据(update语句) 【where 子句条件】 删除数据(delete语句) 删除数据(trunca…

Spring, Spring Boot 和Spring MVC的关系以及区别

一、Spring 简单来说, Spring 是一个开发应用框架,主打轻量级、一站式、模块化,其目的是用于简化企业级应用程序开发。 Spring 的主要功能:管理对象,以及对象之间的依赖关系,面向切面编程,数据库事务管理, …

NO.1 Hadoop概述

1.1 Hadoop是什么 1.2 Hadoop优势 1.3 Hadoop组成 1.3.1 HDFS架构概述 1.3.2 YARN架构概述 1.3.3 MapReduce架构概述 1.3.4 HDFS、YARN、MapReduce三者关系 1.4 大数据技术生态体系 1.5 推荐系统框架图

数据结构C++——优先队列

文章目录 一、定义二、ADT三、优先队列的描述3.1 线性表3.2 堆3.2.1 最大堆的ADT3.2.2 最大堆的插入3.2.3 最大堆的删除3.2.4 最大堆的初始化3.3 左高树 LT3.3.1 高度优先左高树HBLT3.3.2 重量优先左高树WBLT3.3.3 最大HBLT的插入3.3.4 最大HBLT的删除3.3.5 合并两棵最大HBLT3.…

【Linux】yum的认识与简单配置

今天来初步认识一下yum——Linux下软件包管理器。 既然说到Linux下软件包管理器,那我们不妨来先谈论一下什么是软件包的概念。 1. 什么是软件包? 软件的下载需要源代码编译链接之后生成可执行文件进行运行。无论是Windows系统下还是Linux系统下&#x…

QT总结——图标显示坑

最近写代码遇到一个神仙大坑,我都怀疑我软件是不是坏了,这里记录一下。 写qt工程的时候我们一般会设置图标,这个图标是窗体的图标同时也是任务栏的图标,但是我发现生成的exe没有图标,这个时候就想着给他加一个图标&…

AI学习记录 - 激活函数的作用

试验,通过在线性公式加入激活函数,可以拟合复杂的情况(使用react实现,原创) 结论:1、线性函数的叠加,无论叠加多少次,都是线性的 如下图 示例代码 线性代码,使用ykxb的方式&…

【BUG】已解决:ValueError: All arrays must be of the same length

ValueError: All arrays must be of the same length 目录 ValueError: All arrays must be of the same length 【常见模块错误】 【解决方案】 问题原因 解决方法 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰&…

Python爬虫实战案例(爬取图片)

爬取图片的信息 爬取图片与爬取文本内容相似,只是需要加上图片的url,并且在查找图片位置的时候需要带上图片的属性。 这里选取了一个4K高清的壁纸网站(彼岸壁纸https://pic.netbian.com)进行爬取。 具体步骤如下: …

[Python][Python入门]详细讲解

目录 0.铺垫1.常量和表达式2.变量3.变量的类型1.整数2.浮点数3.字符串4.布尔 4.动态类型特性5.注释∞.积累 0.铺垫 Python中,一个语句写完了之后,可以加上分号,也可以不加 通常情况下都是不加的,如果加了,也不算错如果…

Ubuntu-文件管理器中鼠标右键添加文本文件

文件管理器中鼠标右键添加文本文件 一、概述二、步骤 一、概述 Ubuntu在文管右键发现没有创建文本文件的菜单, 期望如下所示,这样的操作非常简单 二、步骤 找到模板文件夹 在模板文件夹,创建自己想要的文件就好啦 这个也是支持放文件夹去…

【C++】学习笔记——哈希_1

文章目录 十八、哈希1. unordered系列关联式容器2. 底层结构哈希函数哈希冲突 未完待续 十八、哈希 1. unordered系列关联式容器 在C11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只…

Linux云计算 |【第二阶段】AUTOMATION-DAY1

主要内容: 版本控制(集中式、分布式)、Git基础(服务端、客户端部署,基础命令操作、文档版本管理)、Git进阶(数据恢复、分支、冲突管理) 一、版本控制概念 版本控制是一种记录文件变…

iterm2工具的使用|MAC电脑终端实现分屏|iterm2开启滚动操作

iterm2 工具概括 iTerm2 是一款非常强大的终端工具。 iTerm2 最初是为 macOS 开发的,但也有 Windows 、Linux 发行版(Ubuntu、centos…)可用。 应用场景 Mac操作系统中想实现终端分屏 iterm2 工具特点 多标签和分屏: 可以在同一个窗口中打开多个标签…

C基础(学习)2024.7.23

Linux基本命令,vi编译器的使用,简单的编程步骤,程序语言,gcc编译器编译过程,进制转换相关知识可以查看文档http://t.csdnimg.cn/CmqhC 数值表示,词法符号,变量,常量相关知识可以查看…

.mp4格式的视频为何不能通过video标签在chrome浏览器中播放?

chrome浏览器目前只支持编解码格式为H264格式的视频,如果某个.mp4后缀的视频不能在chrome浏览器中播放,多半是这个视频的编码格式不是H264的! 1、可以通过ffmpeg工具查看当前视频的编码格式: ffprobe -v error -select_streams v…

JS_plus.key.addEventListener监听键盘按键

官方文档:https://www.html5plus.org/doc/zh_cn/key.html 监听事件 plus.key.addEventListener(keydown, e > {console.log("keydown: "e.keyCode) }) plus.key.addEventListener(keyup, e > {console.log("keyup: "e.keyCode) })移除事…

arcgis api for js4.x实现点击GraphicsLayer上绘制的Graphic获取Graphic中的attributes中的信息

需求:arcgis api for js4.x 在Map地图中添加GraphicsLayer图层,在GraphicsLayer图层添加绘制graphics点,点击绘制的点,获取graphics点中的attributes中的信息 var cityCenter new Point(116, 36, new SpatialReference({ wkid: …