ublog

встановлення manticore search

linux [24]postgresql [12]

встановлюємо manticore search в debian

перевіримо версію дистрибутиву
$ lsb_release -a
Distributor ID:  Debian
Description:  Debian GNU/Linux 9.3 (stretch)
Release:  9.3
Codename:  stretch

і йдемо качаємо відповідний deb з офіційного сайту
sudo wget https://github.com/manticoresoftware/manticoresearch/releases/download/2.7.5/manticore_2.7.5-181204-4a31c54-release-stemmer.stretch_amd64-bin.deb

встановлюємо
$ sudo dpkg -i manticore_2.7.5-181204-4a31c54-release-stemmer.stretch_amd64-bin.deb

...
Manticore installed!

To manage indexes:
    editor /etc/sphinxsearch/sphinx.conf

To rebuild all disk indexes:
    sudo -u manticore indexer --all --rotate

To start/stop search daemon:
    systemctl start/stop manticore
To query search daemon using MySQL client:
    mysql -h 0 -P 9306
    mysql> SELECT * FROM test1 WHERE MATCH('test');

See the manual at docs.manticoresearch.com for details.

For commercial support please contact Manticore Software Ltd at
https://manticoresearch.com/contact/

запустимо мантикору, глянемо чи є процеси, вимкнемо
sudo systemctl start manticore
sudo htop
sudo systemctl stop manticore

далі нам потрібно встановити mysql-клієнт,
оскільки мантикора/сфінкс прикидаються mysql (використовують протокол)
подивимось що там у нас
$ indexer
Manticore 2.7.5 4a31c54@181204 release
Built by gcc/clang v 6.3.0,

Configured by CMake with these definitions: -DCMAKE_BUILD_TYPE=RelWithDebInfo -DDISTR_BUILD=stretch -DDL_UNIXODBC=1 -DUNIXODBC_LIB=libodbc.so.2 -DDL_EXPAT=1 -DEXPAT_LIB=libexpat.so.1 -DUSE_LIBICONV=1 -DDL_MYSQL=1 -DMYSQL_LIB=libmariadbclient.so.18 -DDL_PGSQL=1 -DPGSQL_LIB=libpq.so.5 -DDATADIR=/var/data -DSPLIT_SYMBOLS=ON -DUSE_BISON=ON -DUSE_FLEX=ON -DUSE_SYSLOG=1 -DWITH_EXPAT=ON -DWITH_ICONV=ON -DWITH_MYSQL=ON -DWITH_ODBC=ON -DWITH_PGSQL=ON -DWITH_RE2=ON -DWITH_STEMMER=ON -DWITH_ZLIB=ON -DSYSCONFDIR=/etc/sphinxsearch
...

в результатах наступної шукаємо mysql-клієнт
$ sudo apt search mysql

встановлюємо
$ sudo apt-get install mariadb-client-10.1 libodbc1 libpq5 libexpat1

якщо все добре -- ми можемо приєднатись до мантикори
$ mysql -h0 -P9306

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

подивимось які у нас є тестові індекси,
розглянемо поля одного з них
MySQL [(none)]> SHOW TABLES;
+--------+-------------+
| Index  | Type        |
+--------+-------------+
| dist1  | distributed |
| testrt | rt          |
+--------+-------------+
2 rows in set (0.00 sec)

MySQL [(none)]> DESCRIBE testrt;
+---------+--------+
| Field  | Type  |
+---------+--------+
| id      | bigint |
| title  | field  |
| content | field  |
| gid    | uint  |
+---------+--------+
4 rows in set (0.00 sec)

додамо в тестовий індекс значення,
переглянемо їх вибірку
MySQL [(none)]> INSERT INTO testrt VALUES (1, 'this is', 'a sample text', 11);
Query OK, 1 row affected (0.01 sec)

MySQL [(none)]> INSERT INTO testrt VALUES (2, 'some more', 'text here', 22);
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> INSERT INTO testrt VALUES (3, 'more about this text', 'can be found in this text', 22);
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> SELECT *,weight() FROM testrt  WHERE MATCH('text') ORDER BY WEIGHT() DESC;
+------+------+----------+
| id  | gid  | weight() |
+------+------+----------+
|    3 |  22 |    2252 |
|    1 |  11 |    1319 |
|    2 |  22 |    1319 |
+------+------+----------+
3 rows in set (0.00 sec)

MySQL [(none)]> SELECT *,weight() FROM testrt  WHERE MATCH('text') AND gid > 15 ORDER BY WEIGHT() DESC;
+------+------+----------+
| id  | gid  | weight() |
+------+------+----------+
|    3 |  22 |    2252 |
|    2 |  22 |    1319 |
+------+------+----------+
2 rows in set (0.00 sec)

ще трішки команд
MySQL [(none)]> delete from testrt where id > 0;
Query OK, 3 rows affected (0.00 sec)

MySQL [(none)]> INSERT INTO testrt VALUES(1,'List of HP business laptops','Elitebook Probook',10);
Query OK, 1 row affected (0.01 sec)

MySQL [(none)]> INSERT INTO testrt VALUES(2,'List of Dell business laptops','Latitude Precision Vostro',10);
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> INSERT INTO testrt VALUES(3,'List of Dell gaming laptops','Inspirion Alienware',20);
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> INSERT INTO testrt VALUES(4,'Lenovo laptops list','Yoga IdeaPad',30);
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> INSERT INTO testrt VALUES(5,'List of ASUS ultrabooks and laptops','Zenbook Vivobook',30);
Query OK, 1 row affected (0.00 sec)

MySQL [(none)]> SELECT * FROM testrt WHERE MATCH('list of laptops');
+------+------+
| id  | gid  |
+------+------+
|    1 |  10 |
|    2 |  10 |
|    3 |  20 |
|    5 |  30 |
+------+------+
4 rows in set (0.00 sec)

MySQL [(none)]> SELECT *,WEIGHT() FROM testrt WHERE MATCH('list of laptops') AND gid>10  ORDER BY WEIGHT() DESC,gid DESC;
+------+------+----------+
| id  | gid  | weight() |
+------+------+----------+
|    5 |  30 |    2334 |
|    3 |  20 |    2334 |
+------+------+----------+
2 rows in set (0.00 sec)

MySQL [(none)]> SELECT *,WEIGHT() FROM testrt WHERE MATCH('"list of business laptops"/3');
+------+------+----------+
| id  | gid  | weight() |
+------+------+----------+
|    1 |  10 |    2397 |
|    2 |  10 |    2397 |
|    3 |  20 |    2375 |
|    5 |  30 |    2375 |
+------+------+----------+
4 rows in set (0.01 sec)

MySQL [(none)]> SHOW META;
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| total        | 4        |
| total_found  | 4        |
| time          | 0.001    |
| keyword[0]    | list    |
| docs[0]      | 5        |
| hits[0]      | 5        |
| keyword[1]    | of      |
| docs[1]      | 4        |
| hits[1]      | 4        |
| keyword[2]    | business |
| docs[2]      | 2        |
| hits[2]      | 2        |
| keyword[3]    | laptops  |
| docs[3]      | 5        |
| hits[3]      | 5        |
+---------------+----------+
15 rows in set (0.00 sec)



посилання по темі
https://manticoresearch.com/
http://sphinxsearch.com/
https://docs.manticoresearch.com/latest/html/introduction.html
https://docs.manticoresearch.com/latest/html/installation.html#quick-manticore-usage-tour


далі буде :)