Narazil jsem na tento příspěvek, ale nenašel jsem odpověď, kterou bych chtěl vidět. Takže zde je můj rychlý průvodce:
1. Nainstalujte Sphinx
Na Macu s Homebrew:
brew install sphinx
Na Amazon Linux (CentOS) s yum:
yum install sphinx
2. Vytvořte konfiguraci Sphinx
Sphinx přichází s konfigurační šablonou. Hledejte sphinx.conf.dist v adresáři configs:
Na Macu nainstalovaném s Homebrew:
/usr/local/Cellar/sphinx/<sphinx version>/etc
Na Amazon Linux nainstalovaný s yum:
/etc/sphinx
Je to docela jednoduché, ale pro nováčka může obsahovat příliš mnoho nastavení. V takovém případě můžete použít tuto jednoduchou konfiguraci:
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
}
Do této konfigurace jsem přidal nastavení max_matches, protože moje první otázka poté, co jsem vše zprovoznil, byla "Proč vždy dostanu pouze 20 výsledků vyhledávání?". Pomocí max_matches můžete nastavit limit pro počet výsledků vyhledávání.
3. Vytvořte index pomocí indexeru
indexer --all
4. Spusťte démona Sphinx
sudo searchd -c /path/to/config/sphinx.conf
5. Nainstalujte rozšíření PHP Sphinx
Na Macu s Homebrew:
brew install homebrew/php/php56-sphinx
Na Amazon Linux s yum:
yum install libsphinxclient
pecl install sphinx
6. Dotazujte se na svůj index z PHP
$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);
$result = $index->query('some search term', 'TestIndex');
print_r($result);
V případě jakýchkoli chyb můžete získat další informace následujícím způsobem:
$index->getLastError();
7. Udržujte aktuální index
Chcete-li udržovat aktuální index, můžete použít dva indexy:
- Hlavní index, který není často aktualizován (jednou za týden, měsíc atd.)
- A delta index, který se často aktualizuje (každou hodinu, 5 minut atd.)
Pokaždé, když je index delta znovu indexován, je sloučen s hlavním indexem
Klikněte na tento odkaz http://www.sphinxconsultant.com/sphinx-search-delta -indexování/ a přečtěte si o tomto přístupu více.
Odkazy, které jsem považoval za užitečné:
- 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 -indexování/
- https://github.com/schmittjoh/ php-stubs/tree/master/res/php/sphinx