blog-post

Manticore Search 3.5.2: 优化的 OPTIMIZE,独立的 NOT,通过 HTTP 的分面等

我们很高兴地宣布 Manticore Search 3.5.2 已经发布!

除了 19 个错误修复外,它还引入了一些不错的新功能和更改:

更智能的 OPTIMIZE


如果您使用 Manticore Search 实时索引 ,您会知道有一个命令 OPTIMIZE INDEX 用于索引压缩。历史上,它只能将索引块合并为一个块。在 3.5.2 中,这一点发生了变化,现在可以配置:

  • 默认情况下,最终的块数等于 2 * CPU 核心数,这使得您可以有效利用多个 CPU
  • 为了微调行为,增加了一个新选项 cutoff,使其在块数达到您想要的数量之前继续合并
  • 👷 进行中的工作:更智能的 OPTIMIZE,您将完全不需要在外部运行它!

独立的 NOT 操作符


全文操作符 NOT 现在可以独立使用。默认情况下,它是禁用的,因为意外的单个 NOT 查询可能会很慢。但如果您知道自己在做什么,可以通过将新的 searchd 指令 not_terms_only_allowed 设置为 0 来启用它。这解决了全文黑名单的问题,当您想找到所有不包含某些不良词汇的文档时。这在 Manticore Percolate Queries 中作为一个渗透查询使用时尤其有用,因为它允许您将“黑名单”保存为一组渗透查询,然后过滤掉所有包含它们的文档。

max_threads_per_query 和 OPTION 线程


在 3.5.0 中,我们引入了一种新的多任务模式,基于选项 searchd.threads 限制 Manticore Search 可以为不同作业分配的最大线程数。但如果您在实时索引中有太多块或过于 分布式索引 + 高 QPS,您可能不想让每个查询占用所有的 threads。在 3.5.2 中有两个新选项:

  • max_threads_per_query 用于全局限制
  • SELECT ... OPTION threads=N 用于每个查询的限制

HTTP 协议中的聚合


在 Manticore 3.5.2 中,HTTP API /search 收到了对 分面分组 的基本支持。

👷 进行中的工作:将此功能添加到基于 HTTP 的 Manticore 客户端 ( php , python , javascript , java , elixir )

默认复制端口


配置复制变得更容易。在大多数情况下,您不必考虑要分配给复制使用的端口以及如何在配置中启用复制。如果您想在多个 Manticore 节点之间同步索引,现在变得如此简单:
Easy replication

新的打包方案


从 3.5.2 开始,现在可以单独安装/升级 Manticore Search 服务器和辅助工具(索引器、indextool 等)。这对于那些使用 普通索引 的用户尤其有用,在推出新的索引器(可能会更改索引格式)之前,想先尝试一下搜索服务(可以理解旧格式)。

新的包名称是 manticore-servermanticore-tools,可以通过包管理器安装。
manticore 仍然像以前一样受支持,如果您不需要上述内容,只需像往常一样安装/升级 manticore 即可Manticore Manual 中阅读 3.5.2 中发生的更多更改,并保持关注!

诚挚的,
Manticore 团队

安装Manticore Search

安装Manticore Search