Sphinx ist eine hochleistungsfähige SQL-basierte Volltext-Suchmaschine. Ihre Leistung gehört zu den besten im Bereich der Volltext-Suchmaschinen. Mit Sphinx können wir professionellere Suchfunktionen als die Datenbank selbst implementieren, und es stehen viele gezielte Leistungsoptimierungen zur Verfügung.

Funktionen von Sphinx
- Schnelle Indexerstellung: Ein Index mit fast 1 Million Datensätzen kann in etwa 3 Minuten erstellt werden. Außerdem wird die inkrementelle Indizierung verwendet, wodurch der Neuaufbau des Index sehr schnell erfolgt.
- Blitzschnelle Abrufgeschwindigkeit: Selbst bei einer großen Datenmenge wie 10 Millionen Datensätzen liegt die Abfragegeschwindigkeit noch im Millisekundenbereich. Bei 2-4 GB Text beträgt die durchschnittliche Abfragezeit weniger als 0.1 Sekunden.
- Such-APIs wurden für viele Skriptsprachen entwickelt, wie zum Beispiel PHP, Python,Perl, Ruby usw. Daher können Sie die zugehörigen Schnittstellen von Sphinx in den meisten Programmieranwendungen bequem aufrufen.
- Für MySQL wurde ein Speicher-Engine-Plugin entwickelt. Wenn Sie Sphinx mit MySQL verwenden, könnte es daher nicht bequemer sein.
- Unterstützt verteilte Suche, was eine horizontale Skalierung der Systemleistung ermöglicht.
Architekturdiagramm der PHP+MySQL+Sphinx-Suchmaschine

Installation von Sphinx in MySQL
Es gibt zwei Möglichkeiten, Sphinx auf MySQL zu installieren:
- Die erste Möglichkeit besteht darin, API-Aufrufe zu verwenden. Wir können PHP, Python,Perl, Ruby und anderen Programmiersprachen API-Funktionen zum Ausführen von Abfragen. Diese Methode erfordert kein Neukompilieren von MySQL, bringt weniger Änderungen zwischen Modulen mit sich und ist relativ flexibel.
- Die zweite Methode erfordert das Neukompilieren von MySQL und das Kompilieren von Sphinx als Plugin in MySQL. Diese Methode erfordert weniger Änderungen am Programm — Sie müssen nur SQL-Anweisungen ändern. Die Voraussetzung ist jedoch, dass Ihre MySQL-Version 5.1 oder höher sein muss.
Das Folgende ist die erste Installationsmethode:
#下载最新稳定版 wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz tar xzvf sphinx-0.9.9.tar.gz cd sphinx-0.9.9 ./configure --prefix=/usr/local/sphinx/ --with-mysql --enable-id64 make make install
Installieren des Sphinx-Plugins Coreseek für chinesische Wortsegmentierung
Hinweis: Das Installations-Tutorial für coreseek stammt vonhier, der detaillierte Ablauf ist wie folgt:
Installieren und Aktualisieren von autoconf
Da coreseek autoconf Version 2.64 oder höher erfordert, müssen Sie autoconf aktualisieren; andernfalls treten Fehler auf. Vonhttp://download.chinaunix.net/download.php?id=29328&ResourceID=648Laden Sie autoconf-2.64.tar.bz2 herunter. Die Installationsmethode ist wie folgt:
tar -jxvf autoconf-2.64.tar.bz2 cd autoconf-2.64 ./configure make make install
Herunterladen von coreseek
Die neue Version von coreseek packt das Wörterbuch und den Sphinx-Quellcode in ein Paket, sodass Sie nur das coreseek-Paket herunterladen müssen.
wget http://www.wapm.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
Installieren von mmseg (das von coreseek verwendete Wörterbuch)
tar xzvf coreseek-3.2.14.tar.gz cd mmseg-3.2.14 ./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决 ./configure --prefix=/usr/local/mmseg3 make && make install cd ..
Installieren von coreseek (Sphinx)
cd csft-3.2.14 sh buildconf.sh #输出的warning信息可以忽略,如果出现error则需要解决 ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql make && make install cd ..
Testen der mmseg-Wortsegmentierung und der coreseek-Suche
Hinweis: Sie müssen den Zeichensatz im Voraus auf zh_CN.UTF-8 einstellen, um sicherzustellen, dass Chinesisch korrekt angezeigt wird. Der Zeichensatz meines Systems ist en_US.UTF-8, was ebenfalls funktioniert.
cd testpack cat var/test/test.xml #此时应该正确显示中文 /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml /usr/local/coreseek/bin/indexer -c etc/csft.conf --all /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索 此时正确的应该返回 words: 1. '网络': 1 documents, 1 hits 2. '搜索': 2 documents, 5 hits
Generieren des mmseg-Wörterbuchs und der Konfigurationsdateien
Die neue Version hat sie bereits automatisch generiert.
Zusammenfassung
Als leistungsstarke SQL-Volltextsuchmaschine verdient Sphinx weiterhin die Aufmerksamkeit von Entwicklern, insbesondere wegen der mehrsprachigen API-Unterstützung, die die Nutzung für Entwickler erleichtert.
Quelle:http://www.codeceo.com/article/sphinx-sql-search-engine.html
Autor: Manong.com – Xiaofeng