Задать вопрос
supervaleha
@supervaleha
Web-development

Sphinx + php. Почему Weight в ответе рассчитывается не верно?

Сфинкс установлен и, более-менее настроен. При выполнении
seacrh "проект"
выводит правильные ответы, причем указывает weight и сортирует по нему.

Скачал, настроил библиотеку, для работы с php. Код подключения и вызова:
$this->_cl = new \SphinxClient();
        $this->_cl->SetServer( "localhost", 9312 ); 
        $this->_cl->SetConnectTimeout( 1 ); 
        $this->_cl->SetMaxQueryTime(1000);
        $this->_cl->SetRankingMode( SPH_RANK_BM25 ) ;
        $this->_cl->SetMatchMode( SPH_MATCH_ALL  ); 
        $this->_cl->SetSortMode( SPH_SORT_RELEVANCE ) ;

        $result = $this->_cl->Query( $this->_q, $this->_indexName );


Ошибок нет - кол-во совпадений, список слов и т.д. все верно. НО вес у всех результатов = 1. Т.е. всегда одинаковый и соотв. сортировка не происходит.
Пробовал менять SetRankingMode - безрезультатно. С чем может быть связано такое поведение и как его побороть.

Спасибо
  • Вопрос задан
  • 398 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
supervaleha
@supervaleha Автор вопроса
Web-development
$this->_cl = new \SphinxClient();
        $this->_cl->SetServer( "localhost", 9312 );
        $this->_cl->SetConnectTimeout( 1 ); 
        $this->_cl->SetMaxQueryTime(1000); 

        $this->_cl->SetMatchMode( SPH_MATCH_EXTENDED  );     // <--------
        $this->_cl->SetSortMode( SPH_SORT_RELEVANCE ) ;
        $result = $this->_cl->Query( $this->_q, $this->_indexName );
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
бороть библиотеку нужно, ясное дело

пытайтесь выставить эту троицу

$this->_cl->SetRankingMode( SPH_RANK_BM25 ) ;
 $this->_cl->SetMatchMode( SPH_MATCH_ALL  ); 
 $this->_cl->SetSortMode( SPH_SORT_RELEVANCE ) ;


в те же режимы, что и на голом сфинксе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽