Ich bin auf diesen Beitrag gestoßen, habe aber keine Antwort gefunden, die ich sehen wollte. Hier ist also meine Kurzanleitung:
1. Installieren Sie Sphinx
Auf Mac mit Homebrew:
brew install sphinx
Unter Amazon Linux (CentOS) mit yum:
yum install sphinx
2. Sphinx-Konfiguration erstellen
Sphinx wird mit einer Konfigurationsvorlage geliefert. Suchen Sie im Konfigurationsverzeichnis nach sphinx.conf.dist:
Auf einem mit Homebrew installierten Mac:
/usr/local/Cellar/sphinx/<sphinx version>/etc
Auf Amazon Linux installiert mit yum:
/etc/sphinx
Es ist ziemlich einfach, enthält aber möglicherweise zu viele Einstellungen für einen Neuling. In diesem Fall können Sie diese einfache Konfiguration verwenden:
source TestSource {
type = mysql
sql_host = <host>
sql_user = <user>
sql_pass = <password>
sql_db = <db>
sql_query_range = select min(id), max(id) from TestTable
sql_range_step = 2048
sql_query = select id, some_info from TestTable\
where id >= $start and id <= $end
}
index TestIndex {
source = TestSource
path = /var/lib/sphinx/test-index
min_word_len = 3
min_infix_len = 3
}
searchd {
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
pid_file = /var/run/searchd.pid
max_matches = 200
listen = localhost:9312
}
Ich habe dieser Konfiguration die Einstellung max_matches hinzugefügt, weil meine erste Frage, nachdem ich alles zum Laufen gebracht hatte, lautete:"Warum bekomme ich immer nur 20 Suchergebnisse?". Mit max_matches können Sie das Limit für die Anzahl der Suchergebnisse festlegen.
3. Index mit Indexer erstellen
indexer --all
4. Sphinx-Daemon ausführen
sudo searchd -c /path/to/config/sphinx.conf
5. Installieren Sie die PHP Sphinx-Erweiterung
Auf Mac mit Homebrew:
brew install homebrew/php/php56-sphinx
Unter Amazon Linux mit yum:
yum install libsphinxclient
pecl install sphinx
6. Fragen Sie Ihren Index von PHP ab
$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);
$result = $index->query('some search term', 'TestIndex');
print_r($result);
Im Falle von Fehlern können Sie mit der folgenden Methode weitere Informationen erhalten:
$index->getLastError();
7. Index aktuell halten
Um einen Index aktuell zu halten, können Sie zwei Indizes verwenden:
- Hauptindex, der nicht oft aktualisiert wird (einmal pro Woche, Monat usw.)
- Und Delta-Index, der häufig aktualisiert wird (stündlich, alle 5 Minuten usw.)
Jedes Mal, wenn der Delta-Index neu indiziert wird, wird er mit dem Hauptindex zusammengeführt
Folgen Sie diesem Link http://www.sphinxconsultant.com/sphinx-search-delta -Indizierung/ um mehr über diesen Ansatz zu erfahren.
Links, die ich nützlich fand:
- http://sphinxsearch.com/docs/current.html
- http://sphinxsearch.com/info/faq/
- http://atlchris.com/1996/working-with-sphinx-search-engine-on-a-lamp-linux-apache-mysql-and-php-stack-server/
- http://www.sphinxconsultant.com/sphinx-search-delta -Indizierung/
- https://github.com/schmittjoh/ php-stubs/tree/master/res/php/sphinx