나는 스핑크스 검색 엔진을 개선하여 내 ebsite 성능을 향상시키기 때문에 새로운 mysql 쿼리를 새로운 스핑크스 언어로 변환하려고합니다.스핑크스 검색 필드 간의 연산
요점은 게시물에 대한 투표와 각 투표에 주어진 점수 (1에서 5까지) 사이의 수학 연산을 기반으로 결과를 정렬하는 것입니다.
예를 들어, 게시물에 대해 3 표를 얻었고 1 = 5 점 2 = 3 점 및 3 = 2 점인 경우, 내 표에는 정수 = 3 (votes = 3)의 투표라는 필드가 포함됩니다) 및 5 + 3 + 2 (점 = 10)의 정수 필드가 있습니다. 이로 인해 게시물에 대한 최종 평가가 점/투표 할 것이다 이것에
,이 예에서 10 = 3333/3 ...
내가 목록을 가져올 수 스핑크스 API를 사용하고 가정이 될 것입니다
mysql_query("SELECT * FROM table ORDER BY points/votes DESC LIMIT $start,$stop");
내가 스핑크스의 쿼리를 작성하려고하지만, 작업 항상 0 결과를 제공하지 않습니다 : 최고 내림차순으로 게시물을 평가, 이는 내가 내 PHP 스크립트에 있던 기존 MySQL의 쿼리입니다. 내가 한 모든 시도를 설명하는 // 주석이 달린 행을 읽으십시오.
require("sphinxapi.php");
$cl = new SphinxClient;
$index = index;
$cl->setServer("localhost", 9312);
$cl->SetMatchMode(SPH_MATCH_FULLSCAN);
//$cl->SetSortMode(SPH_SORT_EXTENDED, 'IDIV(points,votes) DESC'); //not working
//$cl->SetSortMode(SPH_SORT_EXTENDED, '(points DIV votes) DESC'); //not working
//$cl->SetSortMode(SPH_SORT_EXTENDED, 'points/votes DESC'); //not working
//$cl->SetSortMode(SPH_SORT_EXTENDED, '(points/votes) DESC'); //not working
$cl->setLimits($start,$stop,$max_matches=1000);
$query = "";
무엇이 잘못되었는지 확인해주세요. 감사합니다.
산술 표현식을 사용하려면'SPH_SORT_EXPR'을 사용해야합니다. – DevZer0
이미 SPH_SORT_EXPR을 시도했으며 제로 결과를 얻었습니다. – Sevy
정렬에 영향을 미치지 않습니다. 정렬 결과가 어떻게 0이됩니까? – DevZer0