Heim > Backend-Entwicklung > PHP-Tutorial > Kompilieren und installieren Sie Sphinx, Coreseek für die chinesische Wortsegmentierung und die PHP-Sphinx-Erweiterung unter Linux

Kompilieren und installieren Sie Sphinx, Coreseek für die chinesische Wortsegmentierung und die PHP-Sphinx-Erweiterung unter Linux

伊谢尔伦
Freigeben: 2016-11-25 15:57:22
Original
2099 Leute haben es durchsucht

Linux-Umgebung ist: CentOS5.5, Ubuntu12.04

1. Software-Download

sphinx-2.1.3

coreseek-4.1

2. Sphinx installieren

tar zxvf sphinx-2.1.3.tar.gz //解压sphinx包
cd sphinx-2.1.3
./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql/
Nach dem Login kopieren

--prefix: Geben Sie den Sphinx-Installationspfad an
--with-mysql: Geben Sie den MySQL-Installationspfad an

sudo make && make install
Nach dem Login kopieren

Kompilieren und installieren

Nach erfolgreicher Installation bildet sphinx drei Befehle:

indexer 创建索引命令
searchd 启动进程命令
search 命令行搜索命令
Nach dem Login kopieren

Hinweis: Die oben genannten Befehle befinden sich standardmäßig im Verzeichnis /usr/local/sphinx/bin

3. Konfigurieren Sie Sphinx und verwenden Sie

cd /usr/local/sphinx/etc
Nach dem Login kopieren

, um das etc-Verzeichnis von Sphinx aufzurufen.

sudo cp sphinx.conf.dist sphinx.conf
Nach dem Login kopieren

, um eine Konfigurationsdatei zu kopieren und sie sphinx.conf zu nennen.

Importieren Sie die Datei example.sql in diesem Verzeichnis in die lokale Datenbank namens test.

Ändern Sie die Konfigurationsinformationen und ändern Sie die Datenbankverbindungsinformationen in Ihre lokalen Datenbankinformationen.

Dann verwenden Sie den folgenden Befehl, um Daten zu importieren und einen Index zu generieren:

$ cd /usr/local/sphinx/etc
$ sudo /usr/local/sphinx/bin/indexer --all
Nach dem Login kopieren

Wenn beim Ausführen des Indexerbefehls ein Fehler gemeldet wird:

ERROR: index 'test1stemmed': sql_connect: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Nach dem Login kopieren

Möglicherweise Dies liegt am Speicherort von mysql.sock. Auf diesem Computer lautet der geänderte Speicherort /tmp/mysql.sock (im Zusammenhang mit den Einstellungen bei der Installation von MySQL). Kommentieren Sie diese Zeile einfach in sphinx.conf aus (entfernen Sie das #-Zeichen davor). :

#sql_sock                = /tmp/mysql.sock
Nach dem Login kopieren

Führen Sie den obigen Indexerbefehl erneut aus, alles ist normal.

Um die Abfrage auszuführen, können Sie den folgenden Befehl verwenden:

$ cd /usr/local/sphinx/etc
$ sudo /usr/local/sphinx/bin/search test
Nach dem Login kopieren

Während des Suchvorgangs wird möglicherweise ein Fehler gemeldet:

index 'test1': search error: query too complex, not enough stack (thread_stack=-2665032K or higher required).
Nach dem Login kopieren

Ich habe es in Sphinx versucht .conf Das Ändern des Werts von thread_stack im Modul searchd hat das Problem nicht gelöst. Später habe ich die folgende Zeile

#sql_query_info         = SELECT * FROM documents WHERE id=$id
Nach dem Login kopieren

in Quelle src1 auskommentiert und dann den Suchbefehl ausgeführt, und es war in Ordnung.

Verwenden Sie den folgenden Befehl, um Sphinx im Hintergrund zu starten:

$ cd /usr/local/sphinx/etc
$ sudo /usr/local/sphinx/bin/searchd
Nach dem Login kopieren

Verwenden Sie das PHP-Skript, um den Suchbefehl auszuführen:

$ cd sphinx/api
$ php test.php test
Nach dem Login kopieren

Das Eingabeergebnis lautet wie folgt:

Query 'test ' retrieved 3 of 3 matches in 0.022 sec.
Query stats:
'test' found 10 times in 6 documents
Matches:
1. doc_id=1, weight=101, group_id=1, date_added=2014-01-20 10:07:37
2. doc_id=2, weight=101, group_id=1, date_added=2014-01-20 10:07:37
3. doc_id=4, weight=1, group_id=2, date_added=2014-01-20 10:07:37
Nach dem Login kopieren

4. Coreseek installieren

tar zxvf coreseek-4.1.tar.gz
Nach dem Login kopieren

Nach der Dekomprimierung werden zwei Verzeichnisse angezeigt: csft-4.1, mmseg-3.2.14

Installieren Sie zunächst mmseg

cd mmseg-3.2.14/
./configure --prefix=/usr/local/mmseg
Nach dem Login kopieren

Wenn während der Kompilierung ein Fehler auftritt: „config.status: Fehler: Eingabedatei konnte nicht gefunden werden: src/Makefile.in“

Lösung:

sudo apt-get install automake
aclocal
libtoolize --force 我运行后有一个错误,没管它。
automake --add-missing
autoconf
autoheader
make clean
./configure --prefix=/usr/local/mmseg
make
sudo make install
Nach dem Login kopieren

csft (coreseek) installieren

cd csft-4.1/
sh buildconf.sh
./configure --prefix=/usr/local/coreseek --with-mysql=/usr/local/mysql/ --with-mmseg=/usr/local/mmseg/ --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ 
sudo make && make install
Nach dem Login kopieren

Nach Abschluss der Installation ist es dasselbe wie nach der Installation von sphinx. Sie müssen die Datei coreseek/etc/example.sql importieren in die lokale Datenbank kopieren, dann sphinx.conf.dist nach csft.conf kopieren und den Datenbankbenutzernamen und das Passwort ändern, Testfehler und Fehlerlösungen in sphinx sind gleich.

Um Sphinx zu verwenden, müssen Sie folgende Dinge tun:

2. Generieren Sie einen Index;

Starten Sie den Suchdienstprozess, der Standardwert ist 9312

Verwenden Sie PHP, um eine Verbindung zum Sphinx-Dienst herzustellen

Befehl starten

Einführung in den Befehlsparameter „searchd“:

-c gibt die Konfigurationsdatei an
cd /usr/local/coreseek/bin/
./searchd
Nach dem Login kopieren

--stop stoppt den Dienst

-- pidfile wird verwendet, um explizit eine PID-Datei anzugeben

-p gibt den Port an

5. PHP install sphinx extension

Wenn ein Fehler auftritt: „configure: error : Libsphinxclient-Header können nicht gefunden werden“

Gelöst Methode:

sudo pecl install sphinx
Nach dem Login kopieren
Gelöst!

Gehen Sie zurück und führen Sie

cd coreseek-4.1/csft-4.1/api/libsphinxclient/
./configure --prefix=/usr/local/libsphinxclient
sudo make && make install
Nach dem Login kopieren
aus. Eine Meldung ähnlich der „Gemeinsame Erweiterungen werden installiert: /usr/lib/php5/20090626/sphinx.so“ erscheint und zeigt den Erfolg an.

Sie können dieses Verzeichnis betreten und dort finden Sie eine generierte sphinx.so-Datei.

Laden Sie die so-Datei in php.ini
./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx=/usr/local/libsphinxclient
sudo make && make install
Nach dem Login kopieren

extension=/usr/lib/php5/ 20090626/sphinx.so

Apache neu starten Dies erscheint in phpinfo(), um den Erfolg anzuzeigen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage