spip-contrib-extensions/indexer | 11 commits
Par Matthieu Marcillaud, le 11 septembre 2024 à 15h57min :
fix: compat PHP 7.4
Modifié
Sources/SpipSourcesIndexer.php
Détails : fix: compat PHP 7.4 (3d92999c) · Validations · spip-contrib-extensions / indexer · GitLab
==============================
Par Matthieu Marcillaud, le 11 septembre 2024 à 12h49min :
fix: Finalement, laisser la page d’indexation dans le menu, pas le form de config.
Modifié
paquet.xml
==============================
Par Matthieu Marcillaud, le 11 septembre 2024 à 12h47min :
docs(changelog): quelques détails de la refonte
Modifié
CHANGELOG.md
==============================
Par Matthieu Marcillaud, le 11 septembre 2024 à 12h37min :
deprecate: Réindexation complète async
Modifié
action/indexer_tout_reindexer_async.php
inc/indexer.php
==============================
Par Matthieu Marcillaud, le 11 septembre 2024 à 12h29min :
fix: Il faut trier par la colonne demandée, sinon, retrouver un élément suivant ne fonctionne pas toujours
Modifié
Sources/SpipDocuments.php
==============================
Par Matthieu Marcillaud, le 11 septembre 2024 à 12h29min :
feat: Refonte de la présentation de l’indexer dans l’espace privé
Ajouté
formulaires/indexer_contenus.html
formulaires/indexer_contenus.php
prive/squelettes/contenu/indexer_stats.html
prive/squelettes/inclure/indexer_navigation.html
prive/squelettes/inclure/indexer_serveur.html
prive/squelettes/navigation/indexer_stats.html
Modifié
Sources/SpipDocuments.php
Sources/SpipSourcesIndexer.php
inc/indexer.php
lang/indexer_fr.php
lib/Indexer/Sources/Sources.php
paquet.xml
prive/squelettes/contenu/indexer.html
prive/squelettes/navigation/configurer_indexer.html
prive/squelettes/navigation/indexer.html
==============================
Par Matthieu Marcillaud, le 9 septembre 2024 à 11h32min :
fix: Pas d’option --parts dans la commande indexer:indexer car ça ne sert plus.
Modifié
spip-cli/IndexerIndexer.php
==============================
Par Matthieu Marcillaud, le 9 septembre 2024 à 11h32min :
feat: Indiquer la date de dernière réindexation & le temps total
Modifié
spip-cli/IndexerIndexer.php
==============================
Par Matthieu Marcillaud, le 6 septembre 2024 à 12h40min :
feat: Refonte du CLI d’indexation
On s’appuie sur des générateurs PHP pour requêter / indexer
l’ensemble des documents sans exploser la mémoire.
Cela oblige à avoir des méthodes différentes pour
- obtenir le nombre de documents à indexer
- obtenir la liste des documents à indexer
Ces méthodes sont mises dans l’interface SourceGeneratorInterface
et sont donc
countDocuments($start = 0, $end = 0, $column = ''): int;yieldDocuments($start = 0, $end = 0, $column = ''): \Generator
ainsi que :
countAllDocuments()yieldAllDocuments(): \Generator
Ces 2 dernières peuvent appeler les 2 premières méthodes,
sans arguments respectivement.
Dans le cadre de documents SQL,
- la méthode countDocuments peut retourner un
sql_countsel(...) - la méthode yieldDocuments peut faire des
yield
à l’interieur d’unsql_select + boucle sql_fetch,
c’est à dire ne surtout pas utilisersql_allfetsel()
qui chargerait tout en mémoire. Exemple dans SpipDocuments :
$res = sql_select('*', $this->table_objet, $where);
while ($contenu = sql_fetch($res)) {
yield $this->createDocumentObjet($contenu);
}
On corrige également le fait que la connexion à la base Sphinx
se faisait à chaque appel à replaceDocuments ou replaceDocument,
ce qui, lors de long traitements en cli finissait par tuer la connexion.
Donc, on garde la même connexion, tant qu’elle fonctionne.
Ajouté
lib/Indexer/Sources/SourceGeneratorInterface.php
Modifié
Sources/HierarchieMots.php
Sources/HierarchieRubriques.php
Sources/SpipDocuments.php
inc/indexer.php
lib/Indexer/Sources/SourceInterface.php
lib/Indexer/Sources/Sources.php
lib/Indexer/Storage/Sphinx.php
lib/Sphinx/SphinxQL/SphinxQL.php
spip-cli/IndexerIndexer.php
==============================
Par Matthieu Marcillaud, le 5 septembre 2024 à 15h04min :
fix: Renommer la commande indexer:purge en indexer:purger (l’ancien nom est conservé en alias)
Ajouté
spip-cli/IndexerPurger.php
==============================
Par Matthieu Marcillaud, le 5 septembre 2024 à 14h59min :
fix: inclusion manquante dans commande indexer:dump
Modifié
inc/indexer.php