GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren und konfigurieren Sie Sphinx unter Ubuntu 16.04, 14.04

Sphinx ist ein einfacher, relevanter und quelloffener Volltextsuchserver. Es ist in der Programmiersprache C++ geschrieben und funktioniert mit Linux und anderen gängigen Betriebssystemen. Dieses Tutorial hilft Ihnen bei der Installation und Konfiguration des Sphinx-Volltextsuchservers auf den Betriebssystemen Ubuntu 16.04, 14.04 LTS.

Voraussetzungen

Bevor Sie mit diesem Handbuch beginnen, müssen Sie über Folgendes verfügen.

  • Ubuntu-Server mit sudo-Zugriff
  • Vorinstallierter MySQL-Server

Schritt 1 – Installieren Sie Sphinx

Die Installation von Sphinx auf Ubuntu ist einfach, da es sich im nativen Paket-Repository befindet. Installieren Sie es mit dem apt-get-Paketmanager auf Ihrem Ubuntu-System.

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

Schritt 2 – MySQL-Datenbank importieren

Lassen Sie uns die Beispiel-SQL-Datei in die Datenbank importieren. Erstellen Sie zuerst eine Datenbank namens test auf Ihrem MySQL-Server und stellen Sie danach die vom Sphinx-Suchpaket bereitgestellte Datenbank wieder her.

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

Schritt 3 – Sphinx konfigurieren

Bearbeiten Sie die Sphinx-Konfiguration wie unten und bearbeiten Sie die MySQL-Verbindungskonfiguration wie unten gezeigt.

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

Schritt 4 – Indexer ausführen

Führen Sie den Indexer aus, um den Volltextindex aus Ihren Daten zu erstellen. Der Indexer ist das erste der beiden Hauptwerkzeuge von Sphinx. Es funktioniert zum Sammeln der Daten, die durchsucht werden können. Sie werden die Ergebnisse wie unten sehen.

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

Schritt 5 – Sphinx starten

Konfigurieren Sie außerdem Ihren Sphinx-Server so, dass er beim Systemstart automatisch startet. Verwenden Sie den folgenden Befehl, um START auf yes zu setzen.

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

Starten Sie nun auch den Dienst zum ersten Mal und prüfen Sie den Status.

service sphinxsearch start
service sphinxsearch status

Sie können den Indexer in Ihrem Crontab auch so konfigurieren, dass er in regelmäßigen Abständen ausgeführt wird. Die folgende Crontab wird stündlich ausgeführt.

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

Schritt 6 – Arbeiten mit Sphinx

Lassen Sie uns einige Abfragen auf Ihrem Sphinx-Server ausführen. Verbinden Sie sich zuerst mit dem folgenden ocmmand.

mit dem Sphinx MySQL-Server
mysql -h0 -P9306

Führen Sie nun einen Befehl nach dem anderen unten aus und sehen Sie sich die Änderungen an. Dies dient nur Ihrem eigenen Lernen.

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. So installieren und konfigurieren Sie Redis unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie Redmine unter Ubuntu 18.04

  3. So installieren und konfigurieren Sie Samba unter Ubuntu 18.04

  4. So installieren und konfigurieren Sie Redis unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie Jenkins unter Ubuntu 20.04

So installieren und konfigurieren Sie Neo4j unter Ubuntu 20.04

So installieren und konfigurieren Sie Ubuntu SDK in Ubuntu 16.04 und 14.04

So installieren und konfigurieren Sie PostgreSQL unter Ubuntu

So installieren und konfigurieren Sie Hadoop unter Ubuntu 20.04

So installieren und konfigurieren Sie Jenkins unter Ubuntu

So installieren und konfigurieren Sie Jenkins in Ubuntu 20.04