How To Install Sphinx On Ubuntu 10.10

Want to support HowtoForge? Become a subscriber!
 
Submitted by mstfleri (Contact Author) (Forums) on Mon, 2010-12-13 17:34. :: Ubuntu

How To Install Sphinx On Ubuntu 10.10

First of all, this is my first post and I apologize for the bad English.

Sphinx is a full-text search engine, publicly distributed under GPL version 2. Commercial licensing (eg. for embedded use) is available upon request. You can use Sphinx for creating big data indexes. It supports MySQL, PostgreSQL, ODBC.

If you use Ubuntu 10.10, you can use

sudo apt-get install sphinxsearch

to install Sphinx.

Sphinx uses a configuration file (/etc/sphinxsearch/sphinx.conf). You should adjust this file to your configuration.

vi /etc/sphinxsearch/sphinx.conf

The conf file consists out of four parts:

source: data source definition

index: index settings for your data source

indexer: consists out of indexer settings (cause path, charset and so on)

searchd: searchd settings

Ok - here's a configuration file sample:

source src1
{
type = mysql
sql_host = localhost
sql_user = test
sql_pass =
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
}

indexer
{
mem_limit = 32M
}

searchd
{
port = 9312
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}

I use MySQL this tutorial.You might have to adjust parameters and you must create data in MySQL. For example:

Mysql dump file:

DROP TABLE IF EXISTS test.documents;

CREATE TABLE test.documents

(

id INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT,

group_id INTEGER NOT NULL,

group_id2 INTEGER NOT NULL,

date_added DATETIME NOT NULL,

title VARCHAR(255) NOT NULL,

content TEXT NOT NULL

);

REPLACE INTO test.documents ( id, group_id, group_id2, date_added, title, content ) VALUES

( 1, 1, 5, NOW(), 'test one', 'this is my test document number one. also checking search within phrases.' ),

( 2, 1, 6, NOW(), 'test two', 'this is my test document number two' ),

( 3, 2, 7, NOW(), 'another doc', 'this is another group' ),

( 4, 2, 8, NOW(), 'doc number four', 'this is to test groups' );

DROP TABLE IF EXISTS test.tags;

CREATE TABLE test.tags

(

docid INTEGER NOT NULL,

tagid INTEGER NOT NULL,

UNIQUE(docid,tagid)

);

INSERT INTO test.tags VALUES

(1,1), (1,3), (1,5), (1,7),

(2,6), (2,4), (2,2),

(3,15),

(4,7), (4,40);

Finally you must run

sudo indexer test1

OK.

Now let's test. :)

You run

search "test"

If there are no problems, you should see a result.

You can use Sphinx for more functionalities.You can define your indexes and attributes on source.

You can read more details about Sphinx here: http://sphinxsearch.com/docs/1.10/


Please do not use the comment function to ask for help! If you need help, please use our forum.
Comments will be published after administrator approval.
Submitted by Anonymous (not registered) on Mon, 2014-01-13 20:22.
Wonderful tutorial. Works perfectly on ubuntu 10.04. Thanks.
Submitted by Sheoran (not registered) on Thu, 2012-05-10 09:25.

Prequel to this tutorial (for Linux users) can be found here:

http://getmuhammad.blogspot.in/2012/03/installing-sphinx-204-on-ubuntu-1004.html 

Submitted by gadelkareem (not registered) on Fri, 2012-03-16 15:45.
Thank you! Here is another example to how to install Sphinx and use with PHP ... Install Sphinx 2.0.4 on CentOS 6.2
Submitted by Saad (not registered) on Mon, 2011-06-20 14:05.
Thank you very much. It is a clear and straight-forward tutorial.