Saya menemukan posting ini tetapi tidak menemukan jawaban yang ingin saya lihat. Jadi, inilah Panduan Memulai Cepat saya:
1. Instal Sphinx
Di Mac dengan Homebrew:
brew install sphinx
Di Amazon Linux (CentOS) dengan yum:
yum install sphinx
2. Buat konfigurasi Sphinx
Sphinx hadir dengan template konfigurasi. Cari sphinx.conf.dist di direktori configs:
Di Mac yang diinstal dengan Homebrew:
/usr/local/Cellar/sphinx/<sphinx version>/etc
Di Amazon Linux yang diinstal dengan yum:
/etc/sphinx
Ini cukup mudah tetapi mungkin berisi terlalu banyak pengaturan untuk pemula. Jika demikian, Anda dapat menggunakan konfigurasi sederhana ini:
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
}
Saya menambahkan pengaturan max_matches ke konfigurasi ini karena pertanyaan pertama saya setelah semuanya berfungsi adalah "Mengapa saya selalu mendapatkan hanya 20 hasil pencarian?". Dengan max_matches Anda dapat mengatur batas jumlah hasil pencarian.
3. Buat indeks menggunakan pengindeks
indexer --all
4. Jalankan daemon Sphinx
sudo searchd -c /path/to/config/sphinx.conf
5. Instal ekstensi PHP Sphinx
Di Mac dengan Homebrew:
brew install homebrew/php/php56-sphinx
Di Amazon Linux dengan yum:
yum install libsphinxclient
pecl install sphinx
6. Buat kueri indeks Anda dari PHP
$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);
$result = $index->query('some search term', 'TestIndex');
print_r($result);
Jika terjadi kesalahan, Anda dapat memperoleh informasi lebih lanjut dengan metode berikut:
$index->getLastError();
7. Tetap perbarui indeks
Untuk mempertahankan indeks terkini, Anda dapat menggunakan dua indeks:
- Indeks utama, yang tidak sering diperbarui (sekali seminggu, sebulan, dll)
- Dan indeks delta, yang sering diperbarui (setiap jam, 5 menit, dll)
Setiap kali indeks delta diindeks ulang, indeks tersebut digabungkan dengan indeks utama
Ikuti tautan ini http://www.sphinxconsultant.com/sphinx-search-delta -pengindeksan/ untuk membaca lebih lanjut tentang pendekatan ini.
Tautan yang menurut saya berguna:
- 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 -pengindeksan/
- https://github.com/schmittjoh/ php-stubs/tree/master/res/php/sphinx