GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat a nakonfigurovat Sphinx na Ubuntu 16.04, 14.04

Sphinx je jednoduchý, relevantní a open source fulltextový vyhledávací server. Je napsán v programovacím jazyce C++ a pracuje s Linuxem a dalšími populárními operačními systémy. Tento tutoriál vám pomůže nainstalovat a nakonfigurovat server fulltextového vyhledávání Sphinx na operačních systémech Ubuntu 16.04, 14.04 LTS.

Předpoklady

Než začnete s touto příručkou, musíte mít následující.

  • Server Ubuntu s přístupem sudo
  • Předinstalovaný server MySQL

Krok 1 – Instalace Sphinx

Instalace Sphinx na Ubuntu je snadná, protože je v nativním úložišti balíčků. Nainstalujte jej pomocí správce balíčků apt-get na vašem systému Ubuntu.

sudo add-apt-repository ppa:builds/sphinxsearch-rel22
sudo apt-get update
sudo apt-get install sphinxsearch

Krok 2 – Import databáze MySQL

Pojďme importovat ukázkový soubor SQL do databáze. Nejprve vytvořte databázi s názvem test na vašem serveru MySQL a poté obnovte databázi poskytovanou vyhledávacím balíčkem sphinx.

sudo mysqladmin -u root -p create test
sudo mysql -u root -p test < /usr/share/doc/sphinxsearch/example-conf/example.sql

Krok 3 – Konfigurace Sfingy

Upravte konfiguraci sphinx, jak je uvedeno níže, a upravte konfiguraci připojení MySQL, jak je uvedeno níže.

sudo vi /etc/sphinxsearch/sphinx.conf
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                = secret
	sql_db                  = test
	sql_port                = 3306  # optional, default is 3306

Krok 4 – Spuštění Indexeru

Spusťte indexátor a vytvořte fulltextový index z vašich dat. Indexer je prvním ze dvou hlavních nástrojů jako součást Sphinx. Slouží ke shromažďování dat, která budou prohledávatelná. Výsledky uvidíte jako níže.

sudo indexer --all 

Sphinx 2.2.11-id64-release (95ae9a6)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/etc/sphinxsearch/sphinx.conf'...
indexing index 'test1'...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.006 sec, 30791 bytes/sec, 638.16 docs/sec
indexing index 'test1stemmed'...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.001 sec, 99382 bytes/sec, 2059.73 docs/sec
skipping non-plain index 'dist1'...
skipping non-plain index 'rt'...
total 8 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
total 24 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg

Krok 5 – Spuštění Sfingy

Také nakonfigurujte svůj server Sphinx tak, aby se automaticky spouštěl při spouštění systému. Pomocí níže uvedeného příkazu nastavte START na ano.

sudo sed -i 's/START=no/START=yes/g' /etc/default/sphinxsearch

Nyní také poprvé spusťte službu a zkontrolujte stav.

service sphinxsearch start
service sphinxsearch status

Můžete také nakonfigurovat indexátor ve vašem crontab tak, aby jej spouštěl v pravidelných intervalech. Níže uvedený crontab poběží každou hodinu.

0 * * * * /usr/bin/indexer --rotate --all

Krok 6 – Práce se Sfingou

Proveďme nějaké dotazy na vašem serveru Sphinx. Nejprve se připojte k serveru Sphinx MySQL pomocí následujícího příkazu ocmand.

mysql -h0 -P9306

Nyní spusťte jeden po druhém příkaz níže a podívejte se na změny. Toto je pouze pro vaše vlastní učení.

mysql> SELECT * FROM test1 WHERE MATCH('document');
mysql> INSERT INTO rt VALUES (1, 'adding', 'sample text here', 11);
mysql> INSERT INTO rt VALUES (2, 'adding some more', 'sample text here', 22);
mysql> SELECT gid/11 FROM rt WHERE MATCH('sample') GROUP BY gid;
mysql> SELECT * FROM rt ORDER BY gid DESC;
mysql> SELECT *, WEIGHT() FROM test1 WHERE MATCH('"document one"/1');
mysql> SHOW META;
mysql> SET profiling=1;
mysql> SELECT * FROM test1 WHERE id IN (1,2,4);
mysql> SHOW PROFILE;
mysql> SELECT id, id%3 idd FROM test1 WHERE MATCH('this is | nothing') GROUP BY idd;
mysql> SHOW PROFILE;
mysql> SELECT id FROM test1 WHERE MATCH('is this a good plan?');
mysql> SHOW PLAN;
mysql> SELECT COUNT(*) FROM test1;
mysql> CALL KEYWORDS ('one two three', 'test1');
mysql> CALL KEYWORDS ('one two three', 'test1', 1);
mysql> SHOW TABLES;

Ubuntu
  1. Jak nainstalovat a nakonfigurovat Redis na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat Redmine na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat Sambu na Ubuntu 18.04

  1. Jak nainstalovat a nakonfigurovat Redis na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Jenkins na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat Askbot na Ubuntu 16.04

  1. Jak nainstalovat a nakonfigurovat MongoDB na Ubuntu 14.04

  2. Jak nainstalovat a nakonfigurovat Solr 6 na Ubuntu 16.04

  3. Jak nainstalovat a nakonfigurovat GitLab na Ubuntu 16.04