# Manticore Search 3.5.2: optimized OPTIMIZE, standalone NOT, faceting via HTTP and more

我们很高兴地宣布 [Manticore Search 3.5.2](https://manticoresearch.com/downloads/) 已发布！

除了19个错误修复外，还引入了一些新功能和更改：

## 更智能的OPTIMIZE

---

如果您使用 Manticore Search 的 [实时索引](https://manual.manticoresearch.com/Read_this_first#Real-time-index-vs-plain-index)，您知道有一个命令 [OPTIMIZE INDEX](https://manual.manticoresearch.com/Securing_and_compacting_an_index/Compacting_an_index#OPTIMIZE-INDEX) 用于索引压缩。历史上它只能将索引块合并为一个块。在3.5.2版本中，这一行为已更改并可配置：
- 默认情况下，最终的块数等于 `2 * CPU核心数`，这可以高效利用您的多核CPU
- 为了微调行为，新增了一个选项 `cutoff`，它会持续合并直到块数达到您想要的数量
- 👷 进行中：更智能的OPTIMIZE，您甚至无需外部运行！

## 独立的NOT运算符

---

现在可以将全文运算符 `NOT` 作为独立运算符使用。默认情况下，它被禁用，因为意外的单个NOT查询可能很慢。但如果您清楚自己在做什么，可以通过将新的searchd指令 `not_terms_only_allowed` 设置为0来启用它。这解决了全文黑名单的任务，当您想要查找所有不包含某些不良词汇的文档时非常有用。这在作为Manticore [Percolate Queries](https://play.manticoresearch.com/pq) 的percolate查询使用时特别有用，因为它允许您将“黑名单”保存为一组percolate查询，然后过滤掉包含它们的所有文档。

## max_threads_per_query 和 OPTION threads

---

在3.5.0版本中，我们引入了一种新的多任务模式，该模式基于选项 `searchd.threads`，用于限制Manticore Search可以为不同任务分配的线程最大数量。但如果您有太多实时索引块或非常大的 [分布式索引](https://manual.manticoresearch.com/Creating_a_table/Creating_a_distributed_index/Creating_a_local_distributed_index#Creating-a-local-distributed-index) + 高QPS，您可能不希望每个查询都占用所有 `threads`。在3.5.2版本中，新增了两个选项：
- `max_threads_per_query` 用于全局限制
- 以及 `SELECT ... OPTION threads=N` 用于每个查询的限制


## HTTP协议中的聚合

---

在Manticore 3.5.2中，HTTP API `/search` 现在支持 [分面](https://manual.manticoresearch.com/Searching/Faceted_search#HTTP) 和 [分组](https://manual.manticoresearch.com/Searching/Grouping) 的基本功能。

👷 进行中：将此功能添加到基于HTTP的Manticore客户端（[php](https://github.com/manticoresoftware/manticoresearch-php)，[python](https://github.com/manticoresoftware/manticoresearch-python)，[javascript](https://github.com/manticoresoftware/manticoresearch-javascript)，[java](https://github.com/manticoresoftware/manticoresearch-java)，[elixir](https://github.com/manticoresoftware/manticoresearch-elixir)）

## 默认复制端口

---

配置复制变得更加简单。在大多数情况下，您无需考虑应分配哪些端口用于复制，以及如何在配置中启用复制。如果您想在多个Manticore节点之间同步索引，现在只需这样简单：
![简易复制](./manticore-search-3-5-2/repl.png)  

## 新的打包方案

---

从3.5.2版本开始，现在可以分别安装/升级Manticore Search服务器和辅助工具（indexer、indextool等）。这对于使用 [普通索引](https://manual.manticoresearch.com/Read_this_first#Real-time-index-vs-plain-index) 的用户特别有用，他们可以在推出新indexer（可能更改索引格式）之前，仅尝试安装searchd（理解旧格式）。

新的包名称是 `manticore-server` 和 `manticore-tools`，可以通过包管理器安装。
**包 `manticore` 仍如以前一样受支持，如果您不需要上述功能，只需像往常一样安装/升级 manticore [下载页面](https://manticoresearch.com/downloads/)。** 了解更多关于3.5.2版本的变更，请阅读 [Manticore手册](https://manual.manticoresearch.com/Changelog) 并保持关注！

此致敬礼，  
Manticore团队
