У меня есть проект с поисковой системой Sphinx.
Проблема в том, что для прямого поиска (когда пользователь вводит свой запрос и нажимает ввод) он работает отлично, но когда я пытаюсь реализовать автозаполнение, он возвращает ноль результатов.
Версия Sphinx - 2.0.8 (я не могу обновить его по некоторым причинам).
Я использую этот код для автоконкурсии (взято из здесь )
<?php
$ln_sph = new PDO("mysql:host=127.0.0.1;port={$confs['port2']}",
'',
'',
array
(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
)
);
$stmt = $ln_sph->prepare("SELECT * FROM ".implode(",", $used_indexes)." WHERE MATCH(':match') LIMIT 0,10 OPTION ranker=sph04");
$aq = explode(' ', $query);
if(mb_strlen($aq[count($aq) - 1]) < 3)
{
$query = $query;
}
else
{
$query = $query.'*';
}
$stmt->bindValue(':match', $query, PDO::PARAM_STR);
$stmt->execute();
$products_ids = array();
foreach($stmt->fetchAll() as $data)
{
//Reading data from sphinx
}
Если я подключаюсь к Sphinx напрямую с сервера через mysql
mysql -P10006 --protocol=tcp
и выполняю тот же запрос, например:
SELECT * FROM `app_catalog_prod_suggests` WHERE MATCH('пирс*') LIMIT 0, 10 OPTION ranker=sph04;
, он также работает нормально.
Индекс от sphinx.conf
index app_catalog_prod_suggests {
source=app_catalog_prod_suggests
path=/path/to/index
enable_star=1
min_word_len=3
min_prefix_len=3
morphology=stem_ru,stem_en,soundex
charset_type=utf-8
html_strip=1
}
Что я делаю не так?
PS Могу предоставить дополнительные данные при необходимости
UPD.Секция поиска
searchd {
listen=127.0.0.1:10005
listen=127.0.0.1:10006:mysql41
log=/path/to/log
query_log=/path/to/querylog
binlog_path = #
pid_file=/path/to/pid
}