Manual:Searchindex table/fr

La table searchindex est utilisée pour fournir le dans le texte complet. Before MySQL 5.6, full text indexes were only provided by the MyISAM table engine, but not by InnoDB. The text table (cur table in 1.4 and earlier) however uses the InnoDB type to improve concurrency, so a copy of the current page text was required in order to make use of these indexes. C'est la raison pour laquelle cette table existe. If using Postgres, this table does not exist: the full text information is stored as columns in the and  tables directly.

This table is populated when edits are saved on pages, unless is set to, or an extension that implements its own search index (like  extension) is installed. The maintenance script can be used to populate it from scratch, or  to update it for recently changed pages.

si_page
Clés vers.

si_title
Munged version of page title.

si_text
Munged version of the current text of the page.

Détails
Les index pour cela sont, si on utilise la Wikipedia anglophone avec sa cardinalité :  +-++--+--+-+---+-+--++--++-+ +-++--+--+-+---+-+--++--++-+ +-++--+--+-+---+-+--++--++-+
 * Table      | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
 * searchindex |         0 | si_page  |            1 | si_page     | A         |      797275 |     NULL | NULL   |      | BTREE      |         |
 * searchindex |         1 | si_title |            1 | si_title    | A         |      265758 |     NULL | NULL   |      | FULLTEXT   |         |

Une requête search commune a la forme suivante :

Dans les versions MediaWiki 1.4 et plus anciennes :

Explain shows the following: +-++---+---+-+++-+ +-++---+---+-+++-+ +-++---+---+-+++-+
 * table      | type   | possible_keys                             | key           | key_len | ref        | rows   | Extra       |
 * cur        | range  | cur_id,cur_namespace,name_title_timestamp | cur_namespace |       1 | NULL       | 317499 | Using where |
 * searchindex | eq_ref | si_page                                  | si_page       |       4 | cur.cur_id |      1 | Using where |



Problèmes connus
A range scan with namespaces containing a large number of records requires that a large portion of the searchindex table be loaded into RAM. This is very costly, in part because the searchindex table contains the full text of the article. La suppression du texte dans la table searchindex est une tâche à long terme. Temporary measures may involve adding fields to searchindex and indexing them (and using a self join to allow both that index and the fulltext index to be used) or adding a searchindex index to decrease the number of complete searchindex records which must be read to match the query.



Résumé du schéma
+--+--+--+-+-+---+ +--+--+--+-+-+---+ +--+--+--+-+-+---+
 * Field   | Type             | Null | Key | Default | Extra |
 * si_page | int(10) unsigned | NO   | PRI | NULL    |       |
 * si_title | varchar(255)    | NO   | MUL |         |       |
 * si_text | mediumtext       | NO   | MUL | NULL    |       |

+--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+
 * Field   | Type            | Null | Key | Default | Extra |
 * si_page | int(8) unsigned | NO   | PRI | NULL    |       |
 * si_title | varchar(255)   | NO   | MUL | NULL    |       |
 * si_text | mediumtext      | NO   | MUL | NULL    |       |

Les index
 +-++--+--+-+---+-+--++--++-+---+ +-++--+--+-+---+-+--++--++-+---+ +-++--+--+-+---+-+--++--++-+---+
 * Table      | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
 * searchindex |         0 | si_page  |            1 | si_page     | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * searchindex |         1 | si_title |            1 | si_title    | NULL      |           0 |     NULL | NULL   |      | FULLTEXT   |         |               |
 * searchindex |         1 | si_text  |            1 | si_text     | NULL      |           0 |     NULL | NULL   |      | FULLTEXT   |         |               |