2012-04-03 2 views
0

は私のスフィンクス検索設定(sphinxsearch_0.9.9-6_amd64)です:Sphinxsearchインデックスmin_stemming_len

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 
} 

私はクライアントとしてPHPを使用

$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'); 

例えばIインデックスにこれらの名前がある: 1. Alex 2. Alen 3. George 4. A 5. G

:::単純な1文字列 "A"を検索しようとすると、Alen/Alex/Aなどが表示されます。

私はのように正しい順序でそれらを表示することができますので、文字列の長さに基づいて検索することができますどのように

:インデックス 『FULL』:いいえ、形態、index_exact_words A /アレン/アレックス...

私はまた、」WARNINGを取得= 1は「

よろしく

答えて

1

を無視して、何の効果もありません、あなたの通常の検索を行うには、序数フィールド(str2ordinal)を使用しますが、ソートモード変更:拡張モードへの切り替えをし、$ sphinx_client-> SetSortModeのような組み合わせを使用(SPH_SORT_EXTENDED、 '@weight desc、myordinal asc');

関連する問題