MariaDB has support for full-text indexing and searching:
A full-text index in MariaDB is an index of type FULLTEXT,
and it allows more options when searching for portions of
text from a field.
Full-text indexes can be used only with MyISAM and Aria
tables, from MariaDB 10.0.5 with InnoDB tables and from
MariaDB 10.0.15 with Mroonga tables, and can be created only
for CHAR, VARCHAR, or TEXT columns.
Partitioned tables cannot contain fulltext indexes, even if
the storage engine supports them.
A FULLTEXT index definition can be given in the CREATE TABLE
statement when a
 table is created, or added later using ALTER TABLE or
CREATE INDEX.
For large data sets, it is much faster to load your data
into a table that
 has no FULLTEXT index and then create the index after that,
than to load data
 into a table that has an existing FULLTEXT index.
 
Full-text searching is performed using MATCH() ... AGAINST
syntax.
MATCH() takes a comma-separated list that names the columns
to be
searched. AGAINST takes a string to search for, and an
optional
modifier that indicates what type of search to perform. The
search
string must be a literal string, not a variable or a column
name.
 
MATCH (col1,col2,...) AGAINST (expr [search_modifier])
 
Excluded Results
 
Partial words are excluded.
Words less than 4 characters in length (3 or less) will not
be stored in the fulltext index. This value can be adjusted
by changing the ft_min_word_length system variable (or, for
InnoDB, innodb_ft_min_token_size).
Words longer than 84 characters in length will also not be
stored in the fulltext index. This values can be adjusted by
changing the ft_max_word_length system variable (or, for
InnoDB, innodb_ft_max_token_size).
Stopwords are a list of common words such as "once" or
"then" that do not reflect in the search results unless IN
BOOLEAN MODE is used. The stopword list for MyISAM/Aria
tables and InnoDB tables can differ. See stopwords for
details and a full list, as well as for details on how to
change the default list.
For MyISAM/Aria fulltext indexes only, if a word appears in
more than half the rows, it is also excluded from the
results of a fulltext search.
For InnoDB indexes, only committed rows appear -
modifications from the current transaction do not apply.
 
Relevance
 
MariaDB calculates a relevance for each result, based on a
number of factors, including the number of words in the
index, the number of unique words in a row, the total number
of words in both the index and the result, and the weight of
the word. In English, 'cool' will be weighted less than
'dandy', at least at present! The relevance can be
returned as part of a query simply by using the MATCH
function in the field list.
 
Types of Full-Text search
 
IN NATURAL LANGUAGE MODE
 
IN NATURAL LANGUAGE MODE is the default type of full-text
search, and the keywords can be omitted. There are no
special operators, and searches consist of one or more
comma-separated keywords.
 
Searches are returned in descending order of relevance.
 
IN BOOLEAN MODE
 
Boolean search permits the use of a number of special
operators:
 
Operator | Description | 
 
+ | The word is mandatory in all rows returned. | 
 
- | The word cannot appear in any row returned. | 
 
< | The word that follows has a lower relevance than other
words, although rows containing it will still match | 
 
> | The word that follows has a higher relevance than other
words. | 
 
() | Used to group words into subexpressions. | 
 
~ | The word following contributes negatively to the
relevance of the row (which is different to the '-'
operator, which specifically excludes the word, or the '

URL: https://mariadb.com/kb/en/full-text-index-overview/