*/
use MediaWiki\MediaWikiServices;
-use Wikimedia\Rdbms\DatabaseSqlite;
/**
* Search engine hook for SQLite
* @return bool
*/
private function fulltextSearchSupported() {
- // Avoid getConnectionRef() in order to get DatabaseSqlite specifically
- /** @var DatabaseSqlite $dbr */
- $dbr = $this->lb->getConnection( DB_REPLICA );
- try {
- return $dbr->checkForEnabledSearch();
- } finally {
- $this->lb->reuseConnection( $dbr );
- }
+ $dbr = $this->lb->getMaintenanceConnectionRef( DB_REPLICA );
+ $sql = (string)$dbr->selectField(
+ $dbr->addIdentifierQuotes( 'sqlite_master' ),
+ 'sql',
+ [ 'tbl_name' => $dbr->tableName( 'searchindex', 'raw' ) ],
+ __METHOD__
+ );
+
+ return ( stristr( $sql, 'fts' ) !== false );
}
/**
* Perform a full text search query and return a result set.
*
* @param string $term Raw search term
- * @return SqlSearchResultSet
+ * @return SqlSearchResultSet|null
*/
protected function doSearchTextInDB( $term ) {
return $this->searchInternal( $term, true );
* Perform a title-only search query and return a result set.
*
* @param string $term Raw search term
- * @return SqlSearchResultSet
+ * @return SqlSearchResultSet|null
*/
protected function doSearchTitleInDB( $term ) {
return $this->searchInternal( $term, false );