Endlich gibt es auch die Volltextsuche für MySQL:
Das kostenlose Plugin sphinxsearch machts möglich. Damit ist es jetzt endlich möglich, neben den MyISAM-Tabellen auch alle anderen Tabellenarten zu durchsuchen. MyISAM-Tabellen haben nämlich den Nachteil, dass sie weder Transaktionen noch Fremdschlüsselbeziehungen kennen.
In MySQL-Versionen ab 5.0.22 lässt sich Sphinx als eigener Tabellentyp integrieren. Das Indexieren und Suchen in den Tabellen führt auch in diesem Fall der externe Daemon durch. Die eigentlichen Textdaten speichern beliebige MySQL-Tabellen, Sphinx-Tabellen fungieren als eine Art Proxy. Zur Abfrage dienen SELECT-Statements, die beide Tabellen in einem JOIN kombinieren.
Dabei werden folgende Features unterstützt:
- high indexing speed (upto 10 MB/sec on modern CPUs)
- high search speed (avg query is under 0.1 sec on 2-4 GB text collections)
- high scalability (upto 100 GB of text, upto 100 M documents on a single CPU)
- supports distributed searching (since v.0.9.6)
- supports MySQL natively (MyISAM and InnoDB tables are both supported)
- supports phrase searching
- supports phrase proximity ranking, providing good relevance
- supports English and Russian stemming
- supports any number of document fields (weights can be changed on the fly)
- supports document groups
- supports stopwords
- supports different search modes („match all“, „match phrase“ and „match any“ as of v.0.9.5)
- generic XML interface which grealy simplifies custom integration
- pure-PHP (ie. NO module compiling etc) searchd client API
Momentan besteht das sphinxsearch-Paket aus folgenden Teilprogrammen:
- indexer: Werkzeug zum Erstellen von Volltext-Indizes
- search: Ein einfaches (Test-)Werkzeug, um Volltext-Indizes von der Kommandozeile aus abzufragen.
- searchd: Ein Daemon, um von außen (also über externe Programme wie webskripte) auf die Volltext-Indizes zuzugreifen
- sphinxapi: ein Satz von Programmierschnittstellen (API) für PHP (momentan; später mehrere Sprachen)