Как установить Sphinx на LINUX (Ubuntu) - PullRequest
4 голосов
/ 18 января 2012

Это Раджа, я использую PHP для своей веб-разработки.Недавно я должен был установить поиск "Sphinx" в свое приложение с LINUX в ​​качестве ОС.

Я следовал инструкциям, приведенным на этом сайте

http://www.howtoforge.com/how-to-install-sphinx-on-ubuntu-10.10

для установки sphinx в ОС LINUX (Ubuntu), и я протестировал приложение в терминале, я получил такие результаты

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

Проблема в том, что я создалкаталог в каталоге "/ var / www / sphinx_search", который содержит файлы sphinx.conf, sphinxapi.php и test.php.

код sphinx.conf -

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
}

, а код test.php -

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);

, когда я пытаюсь запустить это приложение в браузере(http://localhost/Raja/search_engine/sphinx/) эта ошибка отображается.

{"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.)"}

Поскольку я новичок в Сфинксе, я не могу сразу получить его. Может кто-нибудь помочь мне продолжить.

Любопытно глядяЗа решение ранее,

Заранее спасибо, Раджа.

Ответы [ 2 ]

3 голосов
/ 18 января 2012

В вашем примере с поиском вы используете утилиту поиска, которая не требует запуска демона searchd.Вот почему поиск выполняется успешно.

Чтобы использовать sphinx API, вам нужно запустить демон searchd, например:

/path/to/searchd --config /etc/sphinxsearch/sphinx.conf

Если вы установили sphinx с помощью apt-get, попробуйте:

searchd --config /etc/sphinxsearch/sphinx.conf

После этого вы можете попробовать приложение в браузере.

Но я не понимаю этого

$s->setServer("123.123.123.123", 9312); // NOT "localhost" under Windows 7!

Вы сказали, что запускаете sphinx в Ubuntu, а не в Windows 7. ИтакIP-адрес сервера sphinx должен быть IP-адресом хоста Ubuntu, а не localhost.

Кстати, Ubuntu поставляется со старой версией Sphinx, я бы порекомендовал скачать последнюю версию с sphinxsearch.comПоследняя версия 2.0.3

2 голосов
/ 22 ноября 2012

измените ваш setServer () на этот

$s->SetServer('localhost', 'mysql_user_name', 'mysql_password', 3312);

и установите порт 3312 в вашем sphinx.conf

port = 3312

Я думаю, это может сработать для вас.Если не сказать мне, что случилось.

...