[Решено] Sphinx

Тема в разделе "PHP", создана пользователем Den1a, 11 дек 2017.

Статус темы:
Закрыта.
  1. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    55
    Симпатии:
    3
    Здравствуйте.

    Возникла проблема при связке Sphinx + php
    Из консоли поиск по ключевику идет, а вот php выдает ошибку.
    Благодарен любому совету!
    Конфиг сфинкса:
    Код:
        source src1
        {
            type            = mysql
            sql_host        = localhost
            sql_user        = user
            sql_pass        = pass
            sql_db            = db
            sql_port        = 3306
    
            sql_query_pre        = SET NAMES utf8
            sql_query_pre        = SET CHARACTER SET utf8
    
            sql_query            = SELECT product_id, name FROM oc_product_description
            sql_attr_uint        = product_id
        }
        
        index test1
        {
            source            = src1
            path              = /var/lib/sphinxsearch/data/test1
            charset_type      = utf-8
            min_word_len       = 3
            morphology        = stem_ru
        }
        
        indexer
        {
            # memory limit, in bytes, kiloytes (16384K) or megabytes (256M)
            # optional, default is 32M, max is 2047M, recommended is 256M to 1024M
            mem_limit        = 256M
        }
        
        searchd
        {
            listen              = 9312
            listen              = 9306:mysql41
            log               = /var/log/sphinxsearch/searchd.log
            query_log         = /var/log/sphinxsearch/query.log
            read_timeout      = 5
            max_children      = 30
            pid_file          = /var/run/sphinxsearch/searchd.pid
            max_matches       = 1000
            seamless_rotate   = 1
            preopen_indexes   = 1
            unlink_old        = 1
            binlog_path       = /var/lib/sphinxsearch/data
        }
    Код php
    Код:
        // Создадим объект - клиент сфинкса и подключимся к нашей службе
        $cl = new SphinxClient();
        $cl->SetServer( "localhost", 3312 );
    
        // Собственно поиск
        $cl->SetMatchMode( SPH_MATCH_ANY  ); // ищем хотя бы 1 слово из поисковой фразы
        $result = $cl->Query("перфо"); // поисковый запрос
    
        // обработка результатов запроса
        if ( $result === false ) {
            echo "Query failed: " . $cl->GetLastError() . ".\n"; // выводим ошибку если произошла
        } else {
            if ( $cl->GetLastWarning() ) {
                echo "WARNING: " . $cl->GetLastWarning() . " // выводим предупреждение если оно было";
            }
    
            if ( ! empty($result["matches"]) ) { // если есть результаты поиска - обрабатываем их
                foreach ( $result["matches"] as $product => $info ) {
                    echo $product . "<br />"; // просто выводим id найденных товаров
                }
            }
        }
    
      exit;
    Ошибка: Query failed: connection to 127.0.0.1:9312 failed (errno=111, msg=Connection refused).
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    PHP:
    $cl->SetServer"localhost"3312 );
    ты ж ломишься на 3312, а сфинкс на другом порте.
    проверь что порты открыты.

    p.s. Так же, на сколько я помню у тебя был opencart, можешь посмотреть этот бесплатный модуль, как там сделано: https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=18266
     
    Den1a нравится это.
  3. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    55
    Симпатии:
    3
    Я пробовал все порты. В гугле 100500 мануалов.

    Но вы оказали правы! Порты были закрыты.
    Проблема решена!

    P.s. конечно еще день пришлось потратить на составление правильного конфига для адекватного поиска, но результат получен.
    Модуль не хочу использовать. opencart уже сильно изменен от оригинала. Хочу сам аккуратно с минимальным набором данных делать поиск.
     
Статус темы:
Закрыта.