Description: “Sphinx is a full-text search engine, distributed under GPL version 2. Commercial license is also available for embedded use. Generally, it’s a standalone search engine, meant to provide fast, size-efficient and relevant fulltext search functions to other applications. Sphinx was specially designed to integrate well with SQL databases and scripting languages. Currently built-in data sources support fetching data either via direct connection to MySQL or PostgreSQL, or using XML pipe mechanism (a pipe to indexer in special XML-based format which Sphinx recognizes). As for the name, Sphinx is an acronym which is officially decoded as SQL Phrase Index. Yes, I know about CMU’s Sphinx project“.
Installation:
- Install the packages needed:
apt-get install gcc make libmysqlclient15-dev libmysql++-dev
- Download Sphinx from here .
- Decompress it:
tar xvfz sphinx-*.tar.gz
- Enter its directory:
cd sphinx-*
- Run configure:
./configure --prefix=/usr/local/sphinx --with-mysql
- Compile Sphinx:
make
- Install Sphinx (as root):
make install
Configuration:
- Enter Sphinx’s directory:
cd /usr/local/sphinx/etc
- Make a copy of its default configuration:
cp sphinx.conf.dist sphinx.conf
- Modify it to fit you database schema and preferences (I recommend reading Sphinx’s official documentation and this tutorial by IBM first).
- Create all indexes:
/usr/local/sphinx/bin/indexer --all
- Something like this will be shown:
Sphinx 0.9.9-rc2 (r1785)
Copyright (c) 2001-2009, Andrew Aksyonoffusing 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
Use:
- You can perform a basic search using:
/usr/local/sphinx/bin/search desired_word
. It matches all words by default, but you can change this behaviour. Run/usr/local/sphinx/bin/search
without arguments to show the available options. - Example:
/usr/local/sphinx/bin/search samba
Sphinx 0.9.9-rc2 (r1785)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
index 'software': query 'samba ': returned 1 matches of 1 total in 0.000 sec
displaying matches:
1. document=10, weight=2
id=10
url=http://www.samba.org/
name=Samba
description=Samba is a SMB/CIFS file, print, and login server. It seamlessly integrates Linux/Unix Servers and Desktops into Active Directory environments using the Winbind daemon.
stable_version=3.4.3
stable_date=2009-10-29
download=http://www.samba.org/samba/ftp/stable/samba-3.4.3.tar.gz
words:
1. 'samba': 1 documents, 2 hits
The use of
/usr/local/sphinx/bin/search
is just for test and debugging purposes. There are native API ports for PHP, Python, Java, Perl, and Ruby. I will explain the integration between PHP and Sphinx on another post.
Source :http://acidborg.wordpress.com/2009/11/22/how-to-install-and-configure-sphinx-in-ubuntu-9-10-with-mysql-support/
Note :use searchd --config "config file first";
then sudo indexer --config "config file" --all --rotate
Note :use searchd --config "config file first";
then sudo indexer --config "config file" --all --rotate