Changeset 93152 in spip-zone


Ignore:
Timestamp:
Nov 24, 2015, 9:43:03 PM (4 years ago)
Author:
fil@…
Message:

quelques cas limites qui provoquaient la presence de mots rares dans les suggestions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/indexer/trunk/inc/indexer.php

    r93151 r93152  
    300300// on se base sur la forme exacte (=mot) ; et sans espaces ni tirets !
    301301function indexer_motiver_mots($mots) {
    302         $liste = $mots;
     302        $liste = [];
    303303        foreach($mots as $i => $m) {
    304304                $mots[$i] = '='.preg_replace('/\W/', '', $m);
    305305        }
    306306        $m = join(' ', $mots);
    307         $query = "SELECT count(id) FROM " . SPHINX_DEFAULT_INDEX . " WHERE MATCH('$m')";
     307        $query = "SELECT id FROM " . SPHINX_DEFAULT_INDEX . " WHERE MATCH('$m') LIMIT 1";
    308308
    309309        $sphinx = new Sphinx\SphinxQL\SphinxQL(SPHINX_SERVER_HOST, SPHINX_SERVER_PORT);
     
    313313        OR !is_array($all['query'])
    314314        OR !is_array($all['query']['meta'])) {
    315                 echo "<p class=error>" . _L('Erreur Sphinx')."</p>";
     315                // echo "<p class=error>" . _L('Erreur Sphinx')."</p>";
    316316        } else {
    317                 foreach($all['query']['meta']['keywords'] as $i => $w) {
    318                         $translitt = substr($w['keyword'], 1);
    319                         $liste[$translitt] = intval($w['docs']);
    320                 }
    321                 $liste = array_filter($liste);
    322                 arsort($liste);
     317                if (is_array($all['query']['meta']['keywords'])) {
     318                        foreach($all['query']['meta']['keywords'] as $i => $w) {
     319                                $translitt = substr($w['keyword'], 1);
     320                                if (intval($w['docs']) > 3)
     321                                        $liste[$translitt] = intval($w['docs']);
     322                        }
     323                        $liste = array_filter($liste);
     324                        arsort($liste);
     325                }
    323326                return array_keys($liste);
    324327        }
Note: See TracChangeset for help on using the changeset viewer.