Quick start guide

Install and start Manticore

You can install and start Manticore easily on various operating systems, including Ubuntu, Centos, Debian, Windows, and MacOS. Additionally, you can also use Manticore as a Docker container.

‹›
  • Ubuntu
  • Debian
  • Centos
  • Windows
  • MacOS
  • Docker
📋
wget https://repo.manticoresearch.com/manticore-repo.noarch.deb
sudo dpkg -i manticore-repo.noarch.deb
sudo apt update
sudo apt install manticore manticore-columnar-lib
sudo systemctl start manticore

Connect to Manticore

By default Manticore is waiting for your connections on:

  • port 9306 for MySQL clients
  • port 9308 for HTTP/HTTPS connections
  • port 9312 for connections from other Manticore nodes and clients based on Manticore binary API
‹›
  • SQL
  • HTTP
  • PHP
  • Python
  • Javascript
  • Java
  • C#
📋
mysql -h0 -P9306

Create a table

Let's now create a table called "products" with 2 fields:

  • title - full-text field which will contain our product's title
  • price - of type "float"

Note that it is possible to omit creating a table with an explicit create statement. For more information, see Auto schema.

‹›
  • SQL
  • HTTP
  • PHP
  • Python
  • Javascript
  • Java
  • C#
📋
create table products(title text, price float) morphology='stem_en';
‹›
Response
Query OK, 0 rows affected (0.02 sec)

Add documents

Let's now add few documents to the table:

‹›
  • SQL
  • JSON
  • PHP
  • Python
  • Javascript
  • Java
  • C#
📋
insert into products(title,price) values ('Crossbody Bag with Tassel', 19.85), ('microfiber sheet set', 19.99), ('Pet Hair Remover Glove', 7.99);
‹›
Response
Query OK, 3 rows affected (0.01 sec)

Search

Let's find one of the documents. The query we will use is 'remove hair'. As you can see, it finds a document with the title 'Pet Hair Remover Glove' and highlights 'Hair remover' in it, even though the query has "remove", not "remover". This is because when we created the table, we turned on using English stemming (morphology "stem_en").

‹›
  • SQL
  • JSON
  • PHP
  • Python
  • javascript
  • Java
  • C#
📋
select id, highlight(), price from products where match('remove hair');
‹›
Response
+---------------------+-------------------------------+----------+
| id                  | highlight()                   | price    |
+---------------------+-------------------------------+----------+
| 1513686608316989452 | Pet <strong>Hair Remover</strong> Glove | 7.990000 |
+---------------------+-------------------------------+----------+
1 row in set (0.00 sec)

Update

Let's assume we now want to update the document - change the price to 18.5. This can be done by filtering by any field, but normally you know the document id and update something based on that.

‹›
  • SQL
  • JSON
  • PHP
  • Python
  • javascript
  • Java
  • C#
📋
update products set price=18.5 where id = 1513686608316989452;
‹›
Response
Query OK, 1 row affected (0.00 sec)

Delete

Let's now delete all documents with price lower than 10.

‹›
  • SQL
  • JSON
  • PHP
  • Python
  • javascript
  • Java
  • C#
📋
delete from products where price < 10;
‹›
Response
Query OK, 1 row affected (0.00 sec)

Starting the server

Manticore Search server can be started using different methods, depending on the installation type.

Starting Manticore in Linux

When Manticore Search is installed using DEB or RPM packages, the searchd process can be run and managed by the operating system's init system. Most Linux versions now use systemd, while older releases use SysV init.

To check which init system your platform uses, run the following command:

ps --no-headers -o comm 1

This will display the name of the process that is running as the init process, which can be used to determine the init system in use.

Starting and stopping using systemd

After the installation the Manticore Search service is not started automatically. To start Manticore run the following command:

sudo systemctl start manticore

To stop Manticore run the following command:

sudo systemctl stop manticore

The Manticore service is set to run at boot. You can check it by running:

sudo systemctl is-enabled manticore

If you want to disable Manticore from starting at boot time, run:

sudo systemctl disable manticore

To make Manticore start at boot, run:

sudo systemctl enable manticore

searchd process logs startup information in systemd journal. If systemd logging is enabled you can view the logged information with the following command:

sudo journalctl -u manticore

Custom startup flags using systemd

systemctl set-environment _ADDITIONAL_SEARCHD_PARAMS allows you to specify custom startup flags that the Manticore Search daemon should be started with. See full list here.

For example, to start Manticore with the debug logging level, you can run:

systemctl set-environment _ADDITIONAL_SEARCHD_PARAMS='--logdebug'
systemctl restart manticore

To undo it, run:

systemctl set-environment _ADDITIONAL_SEARCHD_PARAMS=''
systemctl restart manticore

Note, systemd environment variables get reset on server reboot.

Starting and stopping using service

Manticore can be started and stopped using service commands:

sudo service manticore start
sudo service manticore stop

To enable the sysV service at boot on RedHat systems run:

chkconfig manticore on

To enable the sysV service at boot on Debian systems (including Ubuntu) run:

update-rc.d manticore defaults

Please note that searchd is started by the init system under the manticore user and all files created by the server will be owned by this user. If searchd is started under, for example, the root user, the file permissions will be changed, which may result in issues when running searchd as a service again.