Skip to content
Snippets Groups Projects

Dev#29558 improve search performances

Merged Laurent requested to merge dev#29558_improve_search_performances into WIP

Merge request reports

Approval is optional

Merged by (Mar 20, 2025 11:57am UTC)

Merge details

  • Changes merged into WIP with 80bf1ce2.
  • Deleted the source branch.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • efalcy
    efalcy @efalcy started a thread on the diff
    24 24 protected $_facets;
    25 25
    26 26 public function __construct() {
    27 $this->_facets = explode(';', Class_AdminVar::get('UNLEASHED_FACETS'));
    27 $facets = explode(';', Class_AdminVar::get('UNLEASHED_FACETS'));
    28 $this->_facets = array_combine($facets, $facets); // speed optimization
    • Il manque un test correspondant (avec unleashed_facet contenant plusieurs facettes séparés par des ;) )

  • efalcy
    efalcy @efalcy started a thread on the diff
    Last updated by Laurent
    145 145
    146 146 if (!($tri and $tri != '*' and !$pertinence)) {
    147 147 $against_titre = $terms->asSelectAgainst();
    148 $this->select_notices = 'id_notice, '
    149 . 'MATCH(alpha_titre) ' . $against_titre . ' as rel1, '
    150 . 'MATCH(alpha_auteur) ' . $against_titre . ' as rel2 '
    151 . 'from notices';
    152 $this->order_by = ' order by (rel1 * 1.5) + (rel2) desc';
    148
    149 $rel1 = 'MATCH(alpha_titre) ' . $against_titre;
    150 $rel2 = 'MATCH(alpha_auteur) ' . $against_titre;
    151 $this->order_by = ' order by (' . $rel1 .' * 1.5) + (' . $rel2 . ') desc';
    153 152 }
    • Juste pour ma culture perso : on gagne vraiment des perfs a ne pas utiliser de variables mysql ?

    • Author Owner

      pas vraiment, mais cela permet de faire en sorte que toutes les requêtes ait le même "select id_notice, facettes" ce qui simplifie le code.

      Cela permet aussi de gagner en bande passante entre php / mysql, car moins de datas ramenées (2 colonnes en moins)

  • Laurent mentioned in commit d500dc

    mentioned in commit d500dc

Please register or sign in to reply