0
我希望使用sphinx返回的結果來搜索子字符串。SPHINX enable_star不工作
我的設置是否正常?
是否需要重新啓動searchd
進程?
index dev_jobs
{
source = dev_jobs_src
path = /home/sphinx/jobs/dev_jobs
docinfo = extern
charset_type = utf-8
enable_star = 1
min_infix_len = 3
}
searchd
{
port = 9312
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
max_matches = 100000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}
和代碼PHP的一部分:
$sphinx_search = Yii::app()->search;
$sphinx_search->setSelect('*');
$sphinx_search_final = '';
$sphinx_search_query = trim($this->q);
if (strlen($sphinx_search_query) > 0) {
$sphinx_search_query = str_replace('-', ' ', $sphinx_search_query);
$keys = explode(' ', $sphinx_search_query);
foreach ($keys as $k => $key) {
if ($key) {
$keys[$k] = $key;
} else {
unset($keys[$k]);
}
}
if (count($keys) > 0) {
$sphinx_search_final = ' @(position_name,employer_name,employer_first_name,employer_last_name,employer_position) ' . $sphinx_search_query .
' @(position_name,employer_name,employer_first_name,employer_last_name,employer_position) ' . implode('|', $keys);
}
}
所以我需要重新啓動所有進程 – 2013-04-25 13:51:45
你需要重建索引。你不需要*來'重新啓動'searchd,但你需要告訴它加載你的新索引(重新啓動確實是這樣做的,但重新加載通常更好,因爲它不會中斷搜索)。 – barryhunter 2013-04-25 14:48:23