# 关于 Manticore Search  

Manticore Search 是一个易于使用的开源快速搜索数据库。现代、快速、轻量级，具有出色的全文搜索功能  

## 文档

我们理解快速上手新技术的重要性。然而，我们对现有的文档引擎并不满意，因此我们创建了自己的文档引擎。我们的文档引擎 [使用 Manticore Search 构建](https://manual.manticoresearch.com/)，具备由 Manticore Search 提供支持的搜索功能，以及美观的代码示例标签和许多其他功能。

## 互动课程

为了更轻松地熟悉 Manticore Search，我们还提供 [免费互动课程](https://play.manticoresearch.com/)，帮助您轻松学习 Manticore Search——从如何安装和配置开始，逐步深入诸如地理搜索、"您是否是指"功能、自动补全和分面实现等主题。

## 我们的目标和宗旨  

### 易于使用  

我们认为，在当今世界，任何技术供应商的主要关注点应该是易于使用。我们的目标是让我们的用户，无论是开发人员还是 DevOps，无需成为数据库或搜索引擎专家，或拥有博士学位，就能有效使用 Manticore 产品。我们理解我们的用户有其他重要的任务要处理，而不是花数小时去理解各种设置的复杂性及其对功能的影响。因此，我们努力确保 Manticore Search 在最小配置下能够无缝且高效地运行，**即使使用默认设置**。  

### SQL / JSON  

我们热爱 SQL。在准备搜索查询时，很难找到比它更直接的东西。大多数开发人员都熟悉 `WHERE`、`GROUP BY` 和 `ORDER BY`，因为它们已经使用了几十年。使用 Manticore Search，**您可以使用 SQL 执行任何类型的查询**。此外，Manticore Search 还理解 MySQL 协议，允许您使用 MySQL 客户端进行查询。然而，我们理解在应用程序中编写查询可能更适合使用更结构化的协议，而不是 SQL 字符串。因此，**Manticore Search 也支持 JSON**。此外，我们还为多种编程语言提供了 Manticore Search 绑定，以使集成更加无缝。  

### 多模型  

Manticore Search 支持行式存储（类似于 MySQL 和 Postgres）和列式存储（类似于 Redshift、Clickhouse、BigQuery 和 Druid），使其在 [小数据集](https://db-benchmarks.com/test-hn-small/#manticore-search-vs-elasticsearch) 上 [极其快速](https://db-benchmarks.com/test-taxi/#manticore-search-vs-elasticsearch)，这些数据集可以放入 RAM 中，同时在数据 [显著大于 RAM 大小](https://db-benchmarks.com/test-taxi/#manticore-search-vs-elasticsearch) 时仍能保持速度。  

此外，Manticore Search 提供两种配置模式：**plain**，其中所有表在配置文件中指定（类似于 k8s yamls），以及 **real-time**，其中表通过 CREATE/ALTER/DROP TABLE 命令创建、修改和删除。  


### 性能和资源消耗  

**我们认为性能和资源消耗很重要**。这就是为什么 Manticore Search 是用 C++ 编写的，这是一种常用于编写操作系统、浏览器和其他软件的编程语言，在这些软件中性能和资源效率至关重要。用 C++ 编写可能具有挑战性且耗时，但它使我们能够确保 Manticore Search 使用最少的 RAM 并最大化 CPU 效率。根据 *Fair database benchmarks* https://db-benchmarks.com，Manticore Search 在 [小数据](https://db-benchmarks.com/test-hn-small/#manticore-search-vs-elasticsearch) 上比 Elasticsearch **快 15 倍**，在 [大数据](https://db-benchmarks.com/test-taxi/#manticore-search-vs-elasticsearch) 上 **快 4 倍**，在 [日志分析](https://db-benchmarks.com/test-logs10m/#elasticsearch-with-no-tuning-vs-manticore-search-default-row-wise-storage) 上 **快 29 倍**。  

### 高级搜索功能  

**Manticore Search 提供强大的搜索功能**。它结合了高级全文搜索、模糊匹配、智能查询建议、过滤、分面等工具，帮助您为用户提供流畅且吸引人的搜索体验。  

### Elasticsearch 替代方案  

**Manticore Search 是 Elasticsearch 的强大替代方案**。它可以通过一定程度地模拟其接口来无缝替换 Elasticsearch，使您能够继续使用熟悉的工具，如 Kibana 或 Logstash。这种兼容性使您能够轻松将现有的基于 Elasticsearch 的项目迁移到 Manticore Search，利用其性能优势而无需对基础设施进行重大更改。  

### 易于扩展  

受行业高标准和客户需求的驱动，我们设计了 Manticore 以易于扩展。这意味着无论您的搜索任务的规模或复杂性如何——无论是小型网站、对数十亿日志记录的分析，还是构建一个包含来自不同来源的 PB 级数据的多语言目录——您都可以使用 Manticore Search 完成。此外，我们认为 **复制和搜索负载分配应易于使用和维护**。  

### 强大的全文功能  

Manticore Search 最初设计为纯全文搜索引擎，具有 **卓越的全文功能**：拥有超过 20 个全文操作符和 20 多个排名因素，提供多种内置排名器和基于表达式的自定义排名器。此外，它还包括诸如文本词干提取、词形还原、停用词、同义词、词形、低级字符映射、正确的中文分词、简单的文本高亮、排名和分词插件等众多功能。  

### 集成  

我们认为 **将 Manticore Search 集成到现有技术栈中应是容易的**。这就是为什么 Manticore 可以直接从 MySQL、Postgres、MSSQL、ODBC、XML、CSV、TSV 读取数据。它还可以作为引擎与 MySQL 集成，或通过 ProxySQL 访问。Manticore Search 还可以与 Logstash、Apache Superset、Grafana 和其他开源工具无缝集成。

### 开源

作为开源爱好者，我们坚信像数据库这样的技术应当开源。本着这一理念，我们已将 Manticore Search 及所有其他 Manticore 产品在 OSI 认可的开源许可证下公开。您可以在 [GitHub](https://github.com/manticoresoftware/manticoresearch/) 找到我们。

### 向量与混合搜索

Manticore Search 支持向量搜索，可用于相似性搜索、推荐、语义搜索和混合检索等功能。通过利用嵌入（高维空间中的数据表示），它有助于创建智能且精准的搜索体验。使用高效的 HNSW 算法进行 KNN（k 最近邻）搜索，Manticore 支持灵活的向量配置和相似性度量方法，例如余弦相似度、内积和平方 L2 距离。与 SQL 和 JSON API 的集成无缝，确保与现有工作流程的轻松兼容。

## Manticore Search - 易于使用的开源快速搜索数据库  

Manticore Search 是一个开源数据库，于 2017 年作为 [Sphinx Search](https://sphinxsearch.com/) 引擎的延续而创建。我们在其优势的基础上，显著改进了其功能并修复了 [数百个错误](https://manual.manticoresearch.com/Changelog)，同时保持其开源特性。这使 Manticore Search 成为一个现代、快速、轻量级且功能齐全的数据库，具有出色的全文搜索能力。  


