Skip to content
网游世界
网游世界

吾生有涯,而知无涯。

  • 首页
  • PHP
    • ThinkPHP
    • FastAdmin
    • webman
  • JavaScript
    • jQuery
    • AdminLTE
  • Free Pascal
  • Java
    • JeeSite
    • 若依
    • ruoyi-vue-pro
  • 其它
    • 操作系统
    • 树莓派
    • 前端
    • Null
  • 关于
网游世界

吾生有涯,而知无涯。

Manticore Search 简单入门

3Vshej, 2023年12月27日 周三2023年12月27日 周三

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

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


目前支持 在 Ubuntu、Debian、Centos、Windows 和 MacOS 下部署。

安装

更多安装方式,参见官方文档:https://manticoresearch.com/install/

yum 安装

sudo yum install https://repo.manticoresearch.com/manticore-repo.noarch.rpm
sudo yum install manticore manticore-extra

如果从旧版本升级,建议先删除旧包,以避免更新后的包结构带来的冲突:

sudo yum --setopt=tsflags=noscripts remove 'manticore*'

常用命令

# 启动 Manticore
sudo systemctl start manticore

# 开机启动
sudo systemctl is-enabled manticore

# 禁用
sudo systemctl disable manticore

# 启用
sudo systemctl enable manticore

# 查看日志
sudo journalctl -u manticore

# 重启
systemctl restart manticore

通过 ps –no-headers -o comm 1 检测当前系统启动方式。

配置文件默认在 /etc/manticoresearch/manticore.conf

其中配置了端口、日志文件

searchd {
    listen = 127.0.0.1:9312
    listen = 127.0.0.1:9306:mysql
    listen = 127.0.0.1:9308:http
    log = /var/log/manticore/searchd.log
    query_log = /var/log/manticore/query.log
    pid_file = /run/manticore/searchd.pid
    data_dir = /var/lib/manticore
}

允许外部访问
将 127.0.0.1 改为 0.0.0.0,除非你知道自己在做什么,否则不要这么做。

如果修改了配置,需要重启以生效。

确定服务正常

curl -s "http://localhost:9308/search"

返回,

{"error":"unable to parse: "}

表明服务启动正常。

否则,使用 suto systemctl status manticore 查看当前状态。

也可以通过,/var/log/manticore/searchd.log 查看错误日志。

端口说明

9306,用于 MySQL 客户端
9308,用于 HTTP/HTTPS 连接
9312,用于来自其他 Manticore 节点和基于 Manticore 二进制 API 客户端的连接

MySQL 连接

mysql -h0 -P9306

常用 SQL 操作

# 查看所有表
SHOW TABLES;

# 搜索表
SHOW TABLES LIKE 'pro%';

# 创建产品表
create table products(title text, price float) morphology='stem_en';

# 查看表结构
DESC products;

# 显示表 SQL
SHOW CREATE TABLE products;

# 写入数据
insert into products(title,price) values ('华为 Mate 60', 6999.99), ('Xiaomi 13', 3999.99), ('vivo S18', 3199.99);

# 搜索
select id, highlight(), price from products where match('mate');

# 更新
update products set price=6999.12 where id = 7640571067961966596;

# 删除
delete from products where price < 10;

# 导入表
source /sandbox.sql

# 清空表
TRUNCATE TABLE products;

# 清空并重置表
# Manticore 会在清空表之前应用新的分词器、形态学和其他文本处理设置。
# 如果不使用 with reconfigure 参数,则需要在清空表后手动重新配置表。
TRUNCATE TABLE products with reconfigure;

# 删除表
DROP TABLE IF EXISTS products;

相关资源:

  • Manticore Search 官网
  • Manticore PHP 客户端
  • 官方文档
  • manticore search 中文文档(不完整)

相关文章:

  1. 世界,您好! 这是我的新博客,用于记录日常学习、工作中的收获和总结。...
  2. OAuth 的权限问题与信息隐忧 以 QQ 登陆和微博登陆为代表的“一键登陆”背后不仅仅是登陆这么简单,它还默认获取了你的其他隐私资料......
  3. Layui 表单提交报错 Uncaught TypeError: ‘checkValidity’ called on an object that does not implement interface HTMLButtonElement Layui 表单提交报错: Uncaught TypeError: ‘checkVali......
其它 操作系统 Manticore Search全文搜索

文章导航

Previous post
Next post

近期文章

  • Android Studio Gradle 配置国内镜像
  • 为什么重新发明轮子
  • ruoyi-vue-pro 匿名访问
  • VUE 中接收 code 异常
  • 关于 AI

归档

  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
除非特殊说明,本站作品采用知识共享署名 4.0 国际许可协议进行许可。
豫公网安备 41010402002622号 豫ICP备2020029609号-3
©2025 3Vshej