2012-04-03 4 views
0

내 스핑크스 검색 구성 (sphinxsearch_0.9.9-6_amd64)입니다 : 내가 예를 들어 클라이언트Sphinxsearch 지수 여기 min_stemming_len

$sphinx_client->SetServer('localhost', 9312); 
$sphinx_client->SetConnectTimeout(1); 
$sphinx_client->SetArrayResult(true); 
$sphinx_client->setRankingMode(SPH_RANK_WORDCOUNT); 
$sphinx_client->SetMatchMode(SPH_MATCH_EXTENDED2); 
if ($mode == 'all') { 
$sphinx_client->SetSortMode(SPH_SORT_RELEVANCE, 'category'); 
} else { 
$sphinx_client->setFilter('category', array($this->_filter_category), FALSE); 
} 
$sphinx_client->SetLimits(0, $this->_limit); 
$results = $sphinx_client->Query('"^'.$query.'$"', 'FULL'); 

로 PHP를 사용

index FULL 
{ 
    charset_type   =  utf-8 
    source     =  FULL 
    path     =  /var/sphinx/data/Full 
    docinfo     =  extern 
    mlock     =  0 
    min_stemming_len  =  1 
    min_prefix_len   =  1 
    min_word_len   =  1 
    html_strip    =  1 
    index_exact_words  =  1 

}

searchd 
{ 
    listen     =  192.168.2.3 
    log      =  /var/log/sphinxsearch/searchd.log 
    query_log    =  /var/log/sphinxsearch/query.log 
    read_timeout   =  3 
    client_timeout   =  60 
    max_children   =  30 
    pid_file    =  /var/run/searchd.pid 
    max_matches    =  1000 
    seamless_rotate   =  1 
    preopen_indexes   =  0 
    unlink_old    =  1 
    mva_updates_pool  =  1M 
    max_packet_size   =  8M 
    max_filters    =  256 
    max_filter_values  =  4096 
} 

전 색인에 그 이름이있다 : 1. Alex 2. Alen 3. George 4. A 5. G

::: 간단한 1 문자 문자열 "A"를 검색하려고하면 Alen/Alex/A 등이 표시됩니다. index_exact_words 어떤 형태를, ...

나는 또한 "경고 얻을 A/알렌/알렉스 : 'FULL'인덱스를

는 내가 문자열 길이를 기반으로 검색 할 수있는 방법

그래서 내가 좋아하는 올바른 순서로 표시 할 수 있습니다 = 1 "

안부

답변

1

를 무시하고 아무런 효과가 없습니다 일반 검색을 수행, 서수 필드 (str2ordinal)를 사용하지만, 분류 모드 수정 : 확장 모드로 전환하고 $ sphinx_client-> SetSortMode 같은 조합을 사용 (SPH_SORT_EXTENDED, '@weight desc, myordinal asc');