Install Manticore Search And Play With Wordpress Database
2018-10-03
966 words
5 mins read
A few days ago I found Manticore search, a fork of Sphinx search. I researched it and found an article.
It is worth trying.
Back up all the content of the existing server and start to increase the search function.
First go to their website to download the latest version for this server system. This server uses Ubuntu 18.04. The latest version of the link can be easily found on the web page. The commands for downloading and installing at the current time are as follows:
According to its installation tutorial, you also need to install several LIBs.
Then start this service
This service is also started when the server starts.
First log in to MySQL with the root username password.
Create a test database
Manticore search provides an example file to import into the test database
Exit the mysql command interface
Ok, so there is a test database
Because the manticore search is a sphinx branch project, the configuration file remains the same in order to maintain compatibility with the meta project.
So edit its configuration file
Modify the database, username and password:
The configuration file is very long, and others need not be modified for the time being.
The test database is stored in mysql. The Manicore search needs to be included in your own system. Use the following command:
Come out with
Successfully indexed. We need to use mysql to log in to Manticore search
Go to the MySQL shell
See the following results
It means that TEST1 has been successfully included. We can test its search function
There are some test commands on the documentation, you can refer to the test.
I make another conf file
Paste the following content:
CTRL-X saves and exits.
Run the indexer command:
Run the searchd command to start the search service.
Ok, let's mysql login to the Manticore Search data server again.
Check the table:
No problem, idx_blog has been indexed.
This is the article of this blog. Run a few commands to test it
1 result:
No problem.
front-end HTML
Then generate a php file for background processing.
These codes include the snippet function and ajax sorting of SphinxQL.
You can try this search function here.
Manticore Search:
It is worth trying.
Back up all the content of the existing server and start to increase the search function.
Install Manticore Search
First go to their website to download the latest version for this server system. This server uses Ubuntu 18.04. The latest version of the link can be easily found on the web page. The commands for downloading and installing at the current time are as follows:
wget https://github.com/manticoresoftware/manticoresearch/releases/download/2.7.3/manticore_2.7.3-180926-d07c4d43-stemmer.bionic_amd64-bin.deb
sudo dpkg -i manticore_2.7.3-180926-d07c4d43-stemmer.bionic_amd64-bin.deb
According to its installation tutorial, you also need to install several LIBs.
sudo apt-get install libmysqlclient20 libodbc1 libpq5 libexpat1
Then start this service
sudo systemctl start manticore
This service is also started when the server starts.
sudo systemctl enable manticore
Create a Manticore search test database
First log in to MySQL with the root username password.
mysql -u root -p
Create a test database
mysql> CREATE DATABASE test;
Manticore search provides an example file to import into the test database
mysql> SOURCE /usr/share/doc/MANTICORE/example-conf/example.sql
Exit the mysql command interface
mysql> exit
Ok, so there is a test database
Configuring Manticore Search
Because the manticore search is a sphinx branch project, the configuration file remains the same in order to maintain compatibility with the meta project.
So edit its configuration file
sudo nano /etc/sphinxsearch/sphinx.conf
Modify the database, username and password:
source src1
{
# data source type. mandatory, no default value
# known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
type = mysql
#####################################################################
## SQL settings (for 'mysql' and 'pgsql' types)
#####################################################################
# some straightforward parameters for SQL source types
sql_host = localhost
sql_user = root
sql_pass = yourpassword
sql_db = test
sql_port = 3306 # optional, default is 3306
....
The configuration file is very long, and others need not be modified for the time being.
Test Manticore search
The test database is stored in mysql. The Manicore search needs to be included in your own system. Use the following command:
sudo -u manticore indexer -c /etc/sphinxsearch/sphinx.conf test1 --rotate
Come out with
indexing index 'test1'...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.160 sec, 1202 bytes/sec, 24.91 docs/sec
total 4 reads, 0.000 sec, 8.1 kb/call avg, 0.0 msec/call avg
total 12 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
rotating indices: successfully sent SIGHUP to searchd (pid=21729).
Successfully indexed. We need to use mysql to log in to Manticore search
mysql -h0 -P9306
Go to the MySQL shell
mysql> show TABLES;
See the following results
+--------+-------------+
| Index | Type |
+--------+-------------+
| dist1 | distributed |
| test1 | local |
| testrt | rt |
+--------+-------------+
3 rows in set (0.00 sec)
It means that TEST1 has been successfully included. We can test its search function
mysql> CALL KEYWORDS ('one two three', 'test1', 1);
+------+-----------+------------+------+------+
| qpos | tokenized | normalized | docs | hits |
+------+-----------+------------+------+------+
| 1 | one | one | 1 | 2 |
| 2 | two | two | 1 | 2 |
| 3 | three | three | 0 | 0 |
+------+-----------+------------+------+------+
3 rows in set (0.00 sec)
There are some test commands on the documentation, you can refer to the test.
Connect with Wordpress Database
I make another conf file
sudo nano /path/sphinx.conf
Paste the following content:
#
# INDEX GROUP:
# MY BLOG
#
# SOURCES:
# src_my_blog
#
# INDEXES:
# idx_blog
#
#
source src_my_blog {
type = mysql
sql_host = localhost
sql_user = yourusername
sql_pass = yourpassword
sql_db = wordpress
sql_query_pre = SET NAMES utf8
sql_query = \
SELECT \
p.ID as ID, \
p.post_title as title, \
p.post_content as body, \
UNIX_TIMESTAMP(p.post_date) AS date_added \
FROM \
wp_posts as p \
WHERE \
p.post_type = 'post' AND \
p.post_status = 'publish';
sql_attr_string = title
sql_field_string = body
sql_attr_timestamp = date_added
}
index idx_blog {
source = src_my_blog
path = /var/lib/manticore/data/idx_blog
docinfo = extern
mlock = 0
min_word_len = 1
### support Chinese words query ###
charset_type = utf-8
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
ngram_len = 1
ngram_chars = U+3000..U+2FA1F
html_strip = 1
html_index_attrs = img=alt,title; a=title;
html_remove_elements = style, script, object, embed, span
}
#############################################################################
## indexer settings
#############################################################################
indexer
{
# memory limit, in bytes, kiloytes (16384K) or megabytes (256M)
# optional, default is 128M, max is 2047M, recommended is 256M to 1024M
mem_limit = 256M
}
#############################################################################
## searchd settings
#############################################################################
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/manticore/searchd.log
query_log = /var/log/manticore/query.log
read_timeout = 5
client_timeout = 300
max_children = 30
persistent_connections_limit = 30
pid_file = /var/run/manticore/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
mva_updates_pool = 1M
max_packet_size = 8M
max_filters = 256
max_filter_values = 4096
max_batch_queries = 32
workers = threads # for RT to work
binlog_path = /var/lib/manticore/data # binlog.001 etc will be created there
}
# --eof--
CTRL-X saves and exits.
Run the indexer command:
sudo indexer --config /path/sphinx.conf --all --rotate
Run the searchd command to start the search service.
sudo searchd --config /path/sphinx.conf
Ok, let's mysql login to the Manticore Search data server again.
mysql -h0 -P9306
Check the table:
mysql> show tables;
+----------+-------+
| Index | Type |
+----------+-------+
| idx_blog | local |
+----------+-------+
1 row in set (0.00 sec)
No problem, idx_blog has been indexed.
This is the article of this blog. Run a few commands to test it
mysql> select title from idx_blog where match('EURJPY');
1 result:
No problem.
Make PHP back-end and AJAX front-end
front-end HTML
Then generate a php file for background processing.
These codes include the snippet function and ajax sorting of SphinxQL.
You can try this search function here.
Manticore Search:
Related Articles:
- 2018/09/25 My First Wordpress Plugin: Find And Replace Text in WP Editor on Both Visual and Text Mode
- 2018/09/23 How to Create Zoom Image Hover Effects with Transparent Text And How to Remove Adsense Auto Ads from Homepage in Extra Theme
- 2018/09/23 Renovate the Website with Extra Theme, Solve Polylang and Extra incompatibility issues and install ADSENSE code on AMP page
- 2018/09/19 Cancel Redirects to Solve Adsense Down or Unavailable Problem and Make a Custom 404 Page to Make Website More User-Friendly
- 2018/09/18 How to Display “Read More” Links on DIVI Search and Tag Pages
Authored By Jesse Lau
A freelancer living in New Zealand, engaged in website development and program trading. Ever won 1st ranking twice in the Dukascopy Strategy Contest. This article is licensed under a Creative Commons Attribution 4.0 International License.