This is Raja, I'm using PHP for my web development. Recently i was supposed to install "Sphinx" search into my application with LINUX as OS.
I've followed the instruction given in this website
http://www.howtoforge.com/how-to-install-sphinx-on-ubuntu-10.10
to install sphinx in LINUX(Ubuntu) OS and I've tested the application in the terminal, i got the results like this
root@dev2:/# search "test"
Sphinx 0.9.9-release (r2117)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/etc/sphinxsearch/sphinx.conf'...
index 'test1': query 'test ': returned 3 matches of 3 total in 0.000 sec
displaying matches:
1. document=1, weight=2, group_id=1, date_added=Thu Jan 5 18:18:55 2012
id=1
group_id=1
group_id2=5
date_added=2012-01-05 18:18:55
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=Thu Jan 5 18:18:55 2012
id=2
group_id=1
group_id2=6
date_added=2012-01-05 18:18:55
title=test two
content=this is my test document number two
3. document=4, weight=1, group_id=2, date_added=Thu Jan 5 18:18:55 2012
id=4
group_id=2
group_id2=8
date_added=2012-01-05 18:18:55
title=doc number four
content=this is to test groups
words:
1. 'test': 3 documents, 5 hits
The Problem is that, I've created the directory in the location "/var/www/sphinx_search", which contains sphinx.conf, sphinxapi.php and test.php files.
the code behind sphinx.conf is
source src1
{
type = mysql
sql_host = localhost
sql_user = user
sql_pass = pwd
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
}
and the code behind test.php is
require_once('sphinxapi.php');
//require_once('api/sphinxapi.php');
$s = new SphinxClient;
$s->setServer("123.123.123.123", 9312); // NOT "localhost" under Windows 7!
$s->setMatchMode(SPH_MATCH_EXTENDED2);
$result = $s->Query("group");
echo '<pre>';print_r($result);
when i'm trying to run this application in browser (http://localhost/Raja/search_engine/sphinx/) this error is getting displayed.
{"status":"failed","status_message":"connection to localhost:9312 failed (errno=10060, msg=A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)"}
As i'm new to Sphinx, i cant get it right away. Can anybody help me to proceed further.
Curiously looking for a solution earlier,
Thanks in Advance, Raja.
In your example with search you using search utility which don't require searchd daemon to be running. That's why search is executed successfully.
To use sphinx API you need to start searchd daemon, like:
/path/to/searchd --config /etc/sphinxsearch/sphinx.conf
If you installed sphinx using apt-get then try:
searchd --config /etc/sphinxsearch/sphinx.conf
After that you could try application in browser.
But, I don't understand this
$s->setServer("123.123.123.123", 9312); // NOT "localhost" under Windows 7!
You said you running sphinx under ubuntu, not windows 7. So, sphinx server IP should be IP of ubuntu host, not localhost.
BTW, ubuntu ship old version of Sphinx, I would recommend to download latest from sphinxsearch.com. Latest version is 2.0.3