Я только что установил на свой сервер SphinxQL Vendor (я новичок в этом), и у меня возникла проблема — я не могу найти способ заставить скрипт работать с помощью произвольного выбора.
Это мой код:
require "./classes/vendor/autoload.php";
use Foolz\SphinxQL\SphinxQL;
use Foolz\SphinxQL\Connection;
// create a SphinxQL Connection object to use with SphinxQL
$conn = new Connection();
$conn->setParams(array('host' => '127.0.0.1', 'port' => 9306));
$query = SphinxQL::create($conn)->select('*')
->from('documents_titles')
->match('title','welcome')
->orderBy('title', $direction = 'RAND()');
$result = $query->execute();
var_dump($result);
Я пробовал много способов сделать это случайным, но не повезло. Надеюсь, кто-нибудь может мне помочь с этим.
SphinxQL поддерживает только asc
а также desc
варианты а не rand
направление. Увидеть https://github.com/FoolCode/SphinxQL-Query-Builder#group-within-group-order-offset-limit-option Больше подробностей.
Однако вместо этого вы можете сделать это на PHP:
require "./classes/vendor/autoload.php";
use Foolz\SphinxQL\SphinxQL;
use Foolz\SphinxQL\Connection;
// create a SphinxQL Connection object to use with SphinxQL
$conn = new Connection();
$conn->setParams(array('host' => '127.0.0.1', 'port' => 9306));
$query = SphinxQL::create($conn)->select('*')
->from('documents_titles')
->match('title','welcome');
$result = $query->execute();
shuffle($result); // <-- ADD THIS LINE
var_dump($result);
Других решений пока нет …