GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Sphinx sur Ubuntu 16.04, 14.04

Sphinx est un serveur de recherche en texte intégral simple, pertinent et open source. Il est écrit en langage de programmation C++ et fonctionne avec Linux et d'autres systèmes d'exploitation populaires. Ce didacticiel vous aidera à installer et à configurer le serveur de recherche en texte intégral Sphinx sur les systèmes d'exploitation Ubuntu 16.04, 14.04 LTS.

Prérequis

Avant de commencer ce guide, vous devez disposer des éléments suivants.

  • Serveur Ubuntu avec accès sudo
  • Serveur MySQL préinstallé

Étape 1 :Installer Sphinx

L'installation de Sphinx sur Ubuntu est facile car il se trouve dans le référentiel de packages natif. Installez-le à l'aide du gestionnaire de packages apt-get sur votre système Ubuntu.

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

Étape 2 - Importer la base de données MySQL

Importons l'exemple de fichier SQL dans la base de données. Tout d'abord, créez une base de données nommée test sur votre serveur MySQL, puis restaurez la base de données fournie par le package de recherche sphinx.

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

Étape 3 - Configurer Sphinx

Modifiez la configuration de sphinx comme ci-dessous et modifiez la configuration de la connexion MySQL comme indiqué ci-dessous.

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

Étape 4 - Exécution de l'indexeur

Exécutez l'indexeur pour créer l'index de texte intégral à partir de vos données. L'indexeur est le premier des deux principaux outils faisant partie de Sphinx. Cela fonctionne pour rassembler les données qui seront consultables. Vous verrez les résultats comme ci-dessous.

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

Étape 5 - Démarrage du Sphinx

Configurez également votre serveur Sphinx pour qu'il démarre automatiquement au démarrage du système. Utilisez la commande ci-dessous pour définir START sur oui.

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

Maintenant, démarrez également le service pour la première fois et vérifiez l'état.

service sphinxsearch start
service sphinxsearch status

Vous pouvez également configurer l'indexeur dans votre crontab pour l'exécuter à intervalles réguliers. Le crontab ci-dessous s'exécutera toutes les heures.

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

Étape 6 - Travailler avec Sphinx

Exécutons quelques requêtes sur votre serveur Sphinx. Connectez-vous d'abord au serveur Sphinx MySQL à l'aide de la commande suivante.

mysql -h0 -P9306

Maintenant, exécutez une par une la commande ci-dessous et voyez les changements. Ceci est pour votre propre apprentissage uniquement.

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. Comment installer et configurer Redis sur Ubuntu 18.04

  2. Comment installer et configurer Redmine sur Ubuntu 18.04

  3. Comment installer et configurer Samba sur Ubuntu 18.04

  4. Comment installer et configurer Redis sur Ubuntu 20.04

  5. Comment installer et configurer Jenkins sur Ubuntu 20.04

Comment installer et configurer Neo4j sur Ubuntu 20.04

Comment installer et configurer le SDK Ubuntu dans Ubuntu 16.04 et 14.04

Comment installer et configurer PostgreSQL sur Ubuntu

Comment installer et configurer Hadoop sur Ubuntu 20.04

Comment installer et configurer Jenkins sur Ubuntu

Comment installer et configurer Jenkins dans Ubuntu 20.04