Help:Configuration parameter "$smwgFulltextSearchTableOptions"

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


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
Keyword full-text search · data store

$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.0 and is similar to MediaWiki's $wgDBTableOptions configuration parameter.1

NoteNote: This setting 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

Important noteImportant Note:

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