Help:Con­figu­ration para­meter "$smwgFulltextSearchTableOptions"

From semantic-mediawiki.org
Jump to: navigation, search
edit with form


Title $smwgFulltextSearchTableOptions
Description Sets the full-text search table options to use during installation or update
Default setting See below
Software Semantic MediaWiki
First version supported
Last version supported still available
Configuration Full-text search · Experimental
Keyword full-text search · data store · relational database · sql store · sql database · experimental

$smwgFulltextSearchTableOptions is a configuration parameter that sets the full-text search table options to use during installation or update. It is specific to a relational data store and currently supports MySQL/MariaDB1 and SQLite2 while PostgreSQL34 is currently not supported. The setting was introduced in Semantic MediaWiki 2.5.0Released on 14 March 2017 and compatible with MW 1.23.0 - 1.29.x. and is similar to configuration parameter $wgDBTableOptions (MediaWiki.org).1

This configuration parameter only takes effect if the full-text search feature was enabled.

Default setting

$smwgFulltextSearchTableOptions = array(
	'mysql' => array( 'ENGINE=MyISAM, DEFAULT CHARSET=utf8' ),
	'sqlite' => array( 'FTS4' )
);

This means that by default either the storage engine "MyISAM" with character encoding "UTF8" for MySQL/MariaDB or "FTS4" for SQLite.

Changing the default setting

  • The settings to this configuration parameter directly influence how the table for use with the full-text search is created. Therefore it should only be changed with caution.
  • Maintenance script "setupStore.php"Allows to set up the data backend/store followed by the maintenance script "rebuildFulltextSearchTable.php"Allows to rebuild the full text search data table have to be run after changing the setting of this configuration parameter.

To modify this configuration setting, add one of the following lines to your "LocalSettings.php" file after the enableSemantics() call:

Switching to InnoDB as the default storage engine for MySQL
$smwgFulltextSearchTableOptions = array(
	'mysql' => array( 'ENGINE=InnoDB, DEFAULT CHARSET=utf8' )
);
NoteNote: This may be necessary if you would like to use Azure Database for MySQL.5


Extending the option description (MySQL 5.7+)
$smwgFulltextSearchTableOptions = array(
	'mysql' => array( 'ENGINE=MyISAM, DEFAULT CHARSET=utf8', 'WITH PARSER ngram' )
);
NoteNote: If your are using MySQL as relational database there is no need to set options for SQLite.


Specify extra arguments for the storage engine (SQLite 3.7.4+)
$smwgFulltextSearchTableOptions = array(
	'sqlite' => array( 'FTS4', 'tokenize=porter' )
);

NoteNote: If your are using SQLite as relational database there is no need to set options for MySQL.


Full-text search support by database management systems

According to sources full-text search support is available by:

  • MySQL version 5.6 or later with only "MyISAM" and "InnoDB" storage engines
  • MariaDB only with "MyISAM" and "Aria" storage engines, from MariaDB 10.0.5 also with the "InnoDB" storage engine and and from MariaDB 10.0.15 with the "Mroonga" storage engine
  • SQLite "FTS3" has been available since version 3.5.0, "FTS4" was added with version 3.7.4, and "FTS5" is available with version 3.9.0

See also

References

  1. a b  Semantic MediaWiki: GitHub pull request gh:smw:1481
  2. ^  Semantic MediaWiki: GitHub pull request gh:smw:1801
  3. ^  Semantic MediaWiki: GitHub pull request gh:smw:1956
  4. ^  Postgres is not supported due to a different index schema (e.g. to_tsvector, to_tsquery) but users interested to make it available are encouraged to have a look at the MySQLValueMatchConditionBuilder on how to create a Postgres specific implementation.
  5. ^  Semantic MediaWiki: GitHub issue gh:smw:2661