Задать вопрос
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 - безрезультатно. С чем может быть связано такое поведение и как его побороть.

Спасибо
  • Вопрос задан
  • 396 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 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 ) ;


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

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

Похожие вопросы