2012-04-03 4 views
0

Hier ist meine Sphinx Suche Konfiguration (sphinxsearch_0.9.9-6_amd64):Sphinxsearch Index 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 
} 

ich php als Client verwenden i

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

zum Beispiel haben diese Namen im Index: 1. Alex 2. Alen 3. George 4. A 5. G

::: Wenn ich versuche, nach einfachen 1 Char-String "A" zu suchen, bekomme ich Alen/Alex/A und so weiter.

Wie kann ich auf String-Länge basierte Suche, so kann ich sie in der richtigen Reihenfolge wie angezeigt: A/Alen/Alex ...

ich auch „WARNING: index 'FULL': keine Morphologie, index_exact_words = 1 hat keine Auswirkung, „

Mit freundlichen Grüßen

Antwort

1

verwenden Ordinalfelder (str2ordinal), tun Sie Ihre normale Suche zu ignorieren, aber Sortiermodus ändern: Schalter auf erweiterten Modus und eine Kombination verwenden wie $ sphinx_client-> SetSortMode (SPH_SORT_EXTENDED, '@weight desc, myordinal asc');

Verwandte Themen