blog-post

Manticore Search PHPStorm 支持

Manticore 对 PHPStorm 的支持有限。在这篇文章中,我将概述配置 IDE 以与 Manticore 一起使用的基本步骤。我使用的是 IDE 版本 2023.2.4;在早期或后续版本中可能没有支持。

初始化

  1. 启动 Manticore Search。例如,让我们使用 Docker:
docker run -p 9306:9306 --name manticore --rm -d manticoresearch/manticore:dev-6.2.13-cbf9350
  1. 现在我们需要配置数据源。为此,我们将使用支持 Manticore Search 的 MySQL 驱动程序。打开插件 Database -> New -> Data Source -> MySQL,并按照下面所示填写 PortAuthentication 字段:
    填充数据源
  2. 点击 Test Connection 按钮以确保源配置正确。
    检查连接
  3. 保存配置后,数据库选项卡将显示与 Manticore Search 交互的界面。
    源配置后的数据库

创建表

创建表时,最好使用控制台 Ctrl+Shift+F10

create table products(title text, price float) morphology='stem_en';

如果您决定使用 UI,则从创建表的命令中删除 Manticore.products 数据库,仅保留 products

INSERT

要通过 PHPStorm 向 Manticore 插入数据,可以使用控制台和 UI:

控制台

insert into products(title, price) values ('Crossbody Bag with Tassel', 19.85), ('microfiber sheet set', 19.99), ('Pet Hair Remover Glove', 7.99);

# 3 rows affected in 18 ms

UI

如果希望 id 自动生成,可以将 id 值设置为 0,而不是默认的 null
通过 ui 插入

打开表后,可以看到刚刚添加的数据。
插入数据示例.png

SELECT

最好使用控制台进行 SELECT,因为 MATCH() SQL 语句在 MySQL 中有不同的格式,UI 认为它是错误的。

select * from products where match('pet')

使用 match 操作符的选择

UPDATE

更新操作应仅在控制台中执行。

update products set price=18.5 where id = 8217058505249521668;

# 1 row affected in 12 ms

DELETE

删除操作只能通过控制台完成。

delete from products where id = 8217058505249521668;

# 1 row affected in 12 ms

PQ

前端查询支持也仅在控制台级别实现。

  1. 创建 pq 表
CREATE TABLE pq_table(title text, color string) type='pq';
  1. 填充数据
INSERT INTO pq_table(query) values('@title bag');
INSERT INTO pq_table(query,filters) values('@title shoes', 'color=\'red\'');
INSERT INTO pq_table(query,filters) values('@title shoes', 'color in (\'blue\', \'green\')');
select * from pq_table;

PQ 选择

  1. 运行 CALL PQ 命令
CALL PQ('pq_table', 'What a nice bag', 0 as docs_json);

调用 PQ

结论

总之,将 Manticore Search 与 PHPStorm(特别是 2023.2.4 版)集成是一个简单但微妙的过程。重要的是要记住,虽然可以通过像 PHPStorm 这样的 MySQL IDE 访问 Manticore Search,但它并不是 MySQL。本质上的区别在于 IDE 通过 Manticore Search 交互的方式带来了一定的限制。

安装Manticore Search

安装Manticore Search