Install Sphinx Search di Ubuntu 9.10 dengan MySQL Support

Kemaren iseng-iseng (sebenernya bukan iseng sih, dapet tugas kuliah) untuk menginstall sphnix search, setelah coba-coba akhirnya berhasil juga nginstall  sphinx search di ubuntu, walaupun agak susah awalnya (nginstall aja susah, tinggal next-next doang), maklum lah masih newbie. Pada awalnya saya coba install di windows XP dan lancar-lancar aja, tapi pas nyoba di linux awal-awalnya gagal, tapi untung berhasil juga. Sekedar info aja, saya install sphinx search versi 0.9-9 dan OS Ubuntu 9.10 Karmic. Berikut kronologis instalasinya :

1. Download Sphinx Search dari situs aslinya.
2. Install Mysql, kali ini Mysql yang saya pakai adalah versi 5.1

sudo apt-get install mysql-server-5.1

3. Install Paket yang dibutuhkan, yaitu mysql client library

apt-get install gcc make libmysqlclient15-dev libmysql++-dev

4. Compress hasil download-an sphinx ke lokasi favorit kamu, misalnya di /home

tar xvfz sphinx-0.9-9.tar.gz

5. Setelah proses ekstraksi selesai, masuk ke direktori sphinx

cd /home/sigit/sphinx-0.9-9

6. Jalankan konfigurasi (ini konfigurasi untuk yang menggunakan mysql support)

./configure --prefix=/usr/local/sphinx --with-mysql

7. Setelah selesai konfigurasi, lakukan proses compile

make
make install

Setelah itu apa lagi ya, lupa ane, tunggu diinget-inget dulu……………………………… kayanya udah selesai deh proses instalasinya.
Sekarang waktunya konfigurasi sphinx nya.
8. Masuk ke direktori Sphinx

cd /usr/local/sphinx/etc

ini tergantung dari tempat konfigurasi pada saat proses nomor 6 tadi.
9. Buat klonengan dari file default konfigurasi

sudo cp sphinx.conf.dist sphinx.conf

10. Lakukan sedikit modifikasi, terutama untuk konfigurasi databasenya, ini sedikit cuplikan file sphinx.conf

.............................
# known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
type					= mysql
#####################################################################
## SQL settings (for 'mysql' and 'pgsql' types)
#####################################################################
# some straightforward parameters for SQL source types
sql_host				= 127.0.0.1
sql_user				= root
sql_pass				= password
sql_db				= test
sql_port				= 3306	# optional, default is 3306
# UNIX socket name
.............................

Oh iya lupa gan, sebelumnya di import dulu database contohnya yang ada di /home/***/sphinx-0.9-9/examples.sql ke database mysql yang tadi baru diinstall (kalo yg ini cari tahu ndiri ya caranya)
11. Kalo udah selesai konfigurasi, coba deh tes sphinx nya. caranya gini :

sudo /usr/local/sphinx/bin/indexer --all

Kalo ngga error (kaya di komputer gw ::sombong mode on::) hasilnya seperti ini :

Sphinx 0.9.9-rc2 (r1785)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
indexing index 'software'...
collected 10 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 10 docs, 649 bytes
total 0.013 sec, 48970 bytes/sec, 754.54 docs/sec
total 2 reads, 0.000 sec, 16.3 kb/call avg, 0.0 msec/call avg
total 5 writes, 0.000 sec, 0.4 kb/call avg, 0.0 msec/call avg

kalau udah gitu berarti kita berhasil melakukan crawler terhadap data. buat ngetes pencariannya, caranya gini :

/usr/local/sphinx/bin/search query

misalnya gini :

/usr/local/sphinx/bin/search test

maka hasilnya harusnya gini :

sigit@sigit-laptop:/usr/local/sphinx/etc$ /usr/local/sphinx/bin/search test
Sphinx 0.9.9-release (r2117)
Copyright (c) 2001-2009, Andrew Aksyonoff

using config file '/usr/local/sphinx/etc/sphinx.conf'...
index 'test1': query 'test ': returned 3 matches of 3 total in 0.009 sec

displaying matches:
1. document=1, weight=2, group_id=1, date_added=Tue Mar  2 09:41:24 2010
	id=1
	group_id=1
	group_id2=5
	date_added=2010-03-02 09:41:24
	title=test one
	content=this is my test document number one. also checking search within phrases.
2. document=2, weight=2, group_id=1, date_added=Tue Mar  2 09:41:24 2010
	id=2
	group_id=1
	group_id2=6
	date_added=2010-03-02 09:41:24
	title=test two
	content=this is my test document number two
3. document=4, weight=1, group_id=2, date_added=Tue Mar  2 09:41:24 2010
	id=4
	group_id=2
	group_id2=8
	date_added=2010-03-02 09:41:24
	title=doc number four
	content=this is to test groups

words:
1. 'test': 3 documents, 5 hits

index 'test1stemmed': query 'test ': returned 3 matches of 3 total in 0.000 sec

displaying matches:
1. document=1, weight=2, group_id=1, date_added=Tue Mar  2 09:41:24 2010
	id=1
	group_id=1
	group_id2=5
	date_added=2010-03-02 09:41:24
	title=test one
	content=this is my test document number one. also checking search within phrases.
2. document=2, weight=2, group_id=1, date_added=Tue Mar  2 09:41:24 2010
	id=2
	group_id=1
	group_id2=6
	date_added=2010-03-02 09:41:24
	title=test two
	content=this is my test document number two
3. document=4, weight=1, group_id=2, date_added=Tue Mar  2 09:41:24 2010
	id=4
	group_id=2
	group_id2=8
	date_added=2010-03-02 09:41:24
	title=doc number four
	content=this is to test groups

words:
1. 'test': 3 documents, 5 hits

:hore::hore::hore: berhasil berhasil berhasil.
Segitu dulu tutorial post-an ane kali ini ya temen-temen ::imut mode on:: Besok-besok ane bakal post lagi tentang gimana caranya masang di PHP.

About Sphinx Search (ane kopas dari situs aslinya):
Sphinx is a full-text search engine, distributed under GPL version 2. Commercial licensing (eg. for embedded use) is also available upon request.

Generally, it's a standalone search engine, meant to provide fast, size-efficient and relevant full-text search functions to other applications. Sphinx was specially designed to integrate well with SQL databases and scripting languages.

Currently built-in data source drivers support fetching data either via direct connection to MySQL, or PostgreSQL, or from a pipe in a custom XML format. Adding new drivers (eg. to natively support some other DBMSes) is designed to be as easy as possible.

Search API is natively ported to PHP, Python, Perl, Ruby, Java, and also available as a pluggable MySQL storage engine. API is very lightweight so porting it to new language is known to take a few hours.

As for the name, Sphinx is an acronym which is officially decoded as SQL Phrase Index. Yes, I know about CMU's Sphinx project.


Semoga bisa dimengerti 😀

    • japri
    • March 3rd, 2010

    tutorialnya bagus mas, hidup ubuntu

    • yogilagila
    • March 3rd, 2010

    gan nanya klo cari dokumennya pke xml gimana tuh????

  1. Ubuntu 10. 04 LTS Lucid Lynx beta1 Screenshots tour Written by Zinovsky | 19 March 2010 Posted in News – News Ubunutu 10. 04 TLS Lucid Lynx has bee..
    http://buddypress.freenice.org/blog/2010/03/20/ubuntu-10-04-lts-lucid-lynx-beta1-screenshots-tour/

    • cahyo
    • June 30th, 2010

    tanya mas

    • cahyo
    • July 1st, 2010

    tanya mas
    saya sudah sampai pada perintah cd /usr/local/sphinx/etc
    namun direktori etc tidak di temukan, posisi saya di
    c1@c1-laptop:~/Downloads/sphinx-0.9.9$
    saya tuliskan perintah ls pun tidak ada direktori etc Bagaimana ini ?

    terima kasih

    • posisi /usr/local/sphinx/etc tergantung dari proses instalasi pada bagian ini mas :
      ./configure –prefix=/usr/local/sphinx –with-mysql

      jadi kalau proses konfigurasi berjalan lancar, seharusnya file instalasi disimpan di direktori tersebut.
      pada saat konfigurasi ada muncul error ngga ya mas ?

  2. makasih banget om tutorialnya, ini berguna banget.. 😀 ane udah install di dedicated server ane, cuma masih bingung ini cara pasang di php nya, tutorialnya dah jadi blm ya? 😀

  1. No trackbacks yet.

Leave a reply to Jerry Cancel reply