Changeset 82389 in spip-zone


Ignore:
Timestamp:
May 15, 2014, 1:33:13 PM (5 years ago)
Author:
marcimat@…
Message:

Début d'indexation de tous les articles, par tranches

Location:
_plugins_/indexer/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/indexer/trunk/Sources/Articles.php

    r82380 r82389  
    88
    99
    10     public function getAllDocuments() {
     10
     11    public function getAllDocuments($start = 0, $end = 0) {
     12
     13        $where = [];
     14        if ($start) $where[] = "id_article >= $start";
     15        if ($end)   $where[] = "id_article < $end";
     16
    1117        $all = sql_allfetsel(
    1218            [
     
    1723            ],
    1824            'spip_articles',
    19             '', // Where
     25            $where, // Where
    2026            '', // Gr By
    2127            '', // Or By
     
    4652        ]);
    4753    }
     54
     55
     56    public function getBounds() {
     57        return $bornes = sql_fetsel(['MIN(id_article) AS min', 'MAX(id_article) AS max'], 'spip_articles');
     58    }
     59
     60
    4861}
  • _plugins_/indexer/trunk/Sources/SpipDocuments.php

    r82380 r82389  
    1616    public function getDocuments() {}
    1717
    18     public function getAllDocuments() {}
     18    public function getAllDocuments($start = 0, $end = 0) {}
     19
    1920
    2021    /** @param bool $bool */
     
    5960        return array_map('array_shift', $tags);
    6061    }
     62
     63
     64    public function getBounds() {
     65        return ['min' => 0, 'max' => 0];
     66    }
     67
     68    /**
     69     * Crée un tableau de parts
     70     *
     71     * @param int $count
     72     * @return array
     73    **/
     74    public function getParts($count) {
     75        $bornes = $this->getBounds();
     76        $parts = [];
     77        for ($i = $bornes['min']; $i <= $bornes['max']; $i += $count) {
     78            $parts[$i] = $i + $count;
     79        }
     80        return $parts;
     81    }
    6182}
  • _plugins_/indexer/trunk/inc/indexer.php

    r82387 r82389  
    44
    55// Constantes pour connexion à Sphinx
    6 defined('SPHINX_SERVER_HOST') || define('SPHINX_SERVER_HOST', '127.0.0.1');
    7 defined('SPHINX_SERVER_PORT') || define('SPHINX_SERVER_PORT', 9306);
     6defined('SPHINX_SERVER_HOST')   || define('SPHINX_SERVER_HOST', '127.0.0.1');
     7defined('SPHINX_SERVER_PORT')   || define('SPHINX_SERVER_PORT', 9306);
    88defined('SPHINX_DEFAULT_INDEX') || define('SPHINX_DEFAULT_INDEX', 'spip');
    99
  • _plugins_/indexer/trunk/lib/Indexer/Sources/SourceInterface.php

    r82369 r82389  
    66interface SourceInterface {
    77    public function getDocuments();
    8     public function getAllDocuments();
     8
     9
     10    public function getAllDocuments($start = 0, $end = 0);
     11
     12    /**
     13     * Indique le nombre de découpages pour indexer, en prenant $count éléments à chaque fois
     14     * @param int $count */
     15    public function getParts($count);
    916
    1017    public function __toString();
  • _plugins_/indexer/trunk/prive/squelettes/contenu/indexer.html

    r82387 r82389  
    88
    99$indexer->registerStorage(
    10     new Indexer\Storage\Sphinx(new Sphinx\SphinxQL(SPHINX_SERVER_HOST, SPHINX_SERVER_PORT), SPHINX_DEFAULT_INDEX)
     10    new Indexer\Storage\Sphinx(
     11        new Sphinx\SphinxQL(SPHINX_SERVER_HOST, SPHINX_SERVER_PORT), SPHINX_DEFAULT_INDEX)
    1112);
    1213
     
    1516$sources->register(new Spip\Indexer\Sources\Articles());
    1617
     18$SpipSourcesIndexer = new Spip\Indexer\Sources\SpipSourcesIndexer($indexer, $sources);
     19$SpipSourcesIndexer->setTablesLiens(false); // moche (pour spip 2.1 uniquement)
    1720
    18 foreach ($sources as $source) {
     21$res = $SpipSourcesIndexer->indexAll();
    1922
    20     # $source->setTablesLiens(false);
     23var_dump($res);
    2124
    22     echo "<strong>Temps pour $source :</strong><br />";
    23     spip_timer('source');
    24 
    25     $documents = $source->getAllDocuments();
    26 
    27     $t = spip_timer('source');
    28     echo $t;
    29 
    30 
    31     echo "<br /><strong>Temps pour indexer :</strong><br />";
    32     spip_timer('indexage');
    33 
    34     $indexer->replaceDocuments($documents);
    35 
    36     $t = spip_timer('indexage');
    37     echo $t;
    38 }
    39 
    40 
    41 
Note: See TracChangeset for help on using the changeset viewer.