Instalasi Sphinx Search di Ubuntu 12.04



Sphinx search terkenal powerfull untuk pencarian di website. Saya mencoba melakukan instalasi sphinx search di ubuntu 12.04. Untuk melakukan instalasi saya coba langsung download dengan apt-get. Ada sedikit kelemahan kalo kita download dari apt-get. Kelemahannya kalo source list belum update, nanti sphinx yang kita dapat bukan yang terbaru. Untuk install langsung dari apt-get, caranya buka terminal lalu ketik kode berikut:
sudo apt-get install sphinxsearch
Ketika artikel ini dibuat, sphinxsearch yang terinstall itu versi 2.0.4-1. Setelah itu selesai…. singkat banget ya artikelnya :p.  Nggak ding…. saya mau nambahin cara konfigurasinya.
Setelah instalasi selesai saya melihat di terminal ada perintah sebagai berikut:
“To enable sphinxsearch, edit /etc/default/sphinxsearch and set START=yes”
Artinya saya harus buka file tersebut, setelah saya buka saya ubah START=no jadi START=yes, gimana ngeditnya? buka aja pake gedit di terminal:
sudo gedit /etc/default/sphinxsearch
Tampilan file yang telah diubah:

#
# Settings for the sphinxsearch searchd daemon
# Please read /usr/share/doc/sphinxsearch/README.Debian for details.
#
# Should sphinxsearch run automatically on startup? (default: no)
# Before doing this you might want to modify /etc/sphinxsearch/sphinx.conf
# so that it works for you.
START=yes
Setelah itu mari kita buat file konfigurasi di /etc/sphinxsearch/sphinx.conf. Supaya enak, langsung aja buka gedit dengan sudo:
sudo gedit /etc/sphinxsearch/sphinx.conf
Isi filenya dengan konfigurasi sebagai berikut, sesuaikan host, dbname, username dan password mysql:

#
# Minimal Sphinx configuration sample (clean, simple, functional)
#


source src1
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = passwordmysql
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_query_info = SELECT * FROM documents WHERE id=$id
}
index test1
{
source = src1
path = /var/lib/sphinxsearch/data/test1
docinfo = extern
charset_type = sbcs
}
index testrt
{
type = rt
rt_mem_limit = 32M
path = /var/lib/sphinxsearch/data/testrt
charset_type = utf-8
rt_field = title
rt_field = content
rt_attr_uint = gid
}
indexer
{
mem_limit = 32M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinxsearch/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/lib/sphinxsearch/data
}
Setelah konfigurasi dibuat, import file example.sql ke database MySQL, dalam artikel ini database yang digunakan ‘test’. Dengan menggunakan terminal, import dapat dilakukan dengan mengetik perintah berikut:
mysql -u test /etc/sphinxsearch/example.sql
Setelah itu database ‘test’ akan terisi tabel contoh dari sphinx.
tabel-sphinx
Setelah melakukan konfigurasi, mari kita lakukan index pertama dengan menggunakan indexer. Karena harus nulis di folder-folder admin, kita harus pake sudo. Ketikkan perintah berikut di terminal:
sudo indexer --all
Di terminal saya, muncul kaya gini:

Sphinx 2.0.4-release (r3135)
Copyright (c) 2001-2012, Andrew Aksyonoff
Copyright (c) 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)
using config file '/etc/sphinxsearch/sphinx.conf'...
indexing index 'test1'...
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.024 sec, 7773 bytes/sec, 161.10 docs/sec
skipping non-plain index 'testrt'...
total 3 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
total 9 writes, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
Selamat! Kita udah ngelakuin index pertama kali. Sekarang mari kita coba API sphinx search untuk php. Pertama kita jalanin dulu program search daemonnya, ketik ini di terminal:
sudo searchd
Oh iya saya lupa, kita harus copy dulu contoh file API tuk php, silakan download si ini. Ekstrak file tersebut ke satu folder, kalau pake apache sebaiknya simpan di folder var/www/situs_anda, supaya bisa diakses dari browser.
Setelah itu mari kita coba API Sphinx search untuk php. Ketik perintah berikut di terminal (direktori aktif harus di folder yang ada test.php dan sphinxapi.php nya):
php test.php "test"
Di terminal saya hasilnya seperti ini:

Query 'test ' retrieved 3 of 3 matches in 0.000 sec.
Query stats:
'test' found 5 times in 3 documents
Matches:
1. doc_id=1, weight=101, group_id=1, date_added=2013-03-13 10:18:53
2. doc_id=2, weight=101, group_id=1, date_added=2013-03-13 10:18:53
3. doc_id=4, weight=1, group_id=2, date_added=2013-03-13 10:18:53
Kalo gak ada error, berarti sphinx sudah berjalan di ubuntu kita. Demikian artikel ini, selanjutnya nanti saya akan sajikan materi lain tentang sphinx. (Arief Hidayatulloh)

PHP Mahir, Mahirin skill PHP lo!