Ik kwam dit bericht tegen, maar vond geen antwoord dat ik wilde zien. Dus hier is mijn snelstartgids:
Op Mac met Homebrew:
brew install sphinx
Op Amazon Linux (CentOS) met yum:
yum install sphinx
Sphinx wordt geleverd met een configuratiesjabloon. Zoek naar sphinx.conf.dist in de map configs:
Op Mac geïnstalleerd met Homebrew:
/usr/local/Cellar/sphinx/<sphinx version>/etc
Op Amazon Linux geïnstalleerd met yum:
/etc/sphinx
Het is vrij eenvoudig, maar bevat mogelijk te veel instellingen voor een beginner. In dat geval kunt u deze eenvoudige configuratie gebruiken:
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
}
Ik heb de instelling max_matches aan deze configuratie toegevoegd omdat mijn eerste vraag nadat ik alles werkend had gekregen was:"Waarom krijg ik altijd maar 20 zoekresultaten?". Met max_matches kunt u de limiet voor het aantal zoekresultaten instellen.
indexer --all
sudo searchd -c /path/to/config/sphinx.conf
Op Mac met Homebrew:
brew install homebrew/php/php56-sphinx
Op Amazon Linux met yum:
yum install libsphinxclient
pecl install sphinx
$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);
$result = $index->query('some search term', 'TestIndex');
print_r($result);
In het geval van fouten kunt u meer informatie krijgen met de volgende methode:
$index->getLastError();
Om de index up-to-date te houden, kunt u twee indexen gebruiken:
- Hoofdindex, die niet vaak wordt bijgewerkt (een keer per week, maand, enz.)
- En delta-index, die vaak wordt bijgewerkt (elk uur, 5 min, enz.)
Elke keer dat de delta-index opnieuw wordt geïndexeerd, wordt deze samengevoegd met de hoofdindex
Volg deze link http://www.sphinxconsultant.com/sphinx-search-delta -indexering/ om meer te lezen over deze aanpak.
Links die ik nuttig vond:
- 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 -indexering/
- https://github.com/schmittjoh/ php-stubs/tree/master/res/php/sphinx