0
스핑크스가 반환 한 결과를 사용하여 하위 문자열을 검색하고 싶습니다.SPHINX enable_star not working
제 설정은 괜찮습니까?
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);
}
}
그래서 모든 프로세스를 다시 시작해야합니다. –
인덱스를 다시 작성해야합니다. searchd를 다시 시작해야 할 필요는 없지만 새 인덱스를로드하도록 지시해야합니다 (다시 시작하면됩니다.하지만 재로드는 일반적으로 검색을 방해하지 않으므로 더 좋습니다). – barryhunter