I have a table with 1/2 million phrases and I am doing word matching using this query:
SELECT * FROM `searchIndex` WHERE `indexData` RLIKE '[[:<:]]Hirt'
The indexData field has a FULLTEXT index and is datatype longtext.
I want to match on items like
“Alois M. Hirt”
“Show Biz – Al Hirt, in a new role, …”
“Al Hirt’s Sinatraville open 9 p…”
“Hirt will be playing…”
and not on “shirt” or “thirteen” or “thirty” etc.
The query is succeeding but it frequently takes 3 seconds to return and I wondered if there was a better, more efficient way of doing this word boundary match?
If I were to add another index to indexData what would be the correct keylength to use?
TIA
setsuna‘s answer worked very well:
SELECT * FROM searchIndex WHERE MATCH (indexData) AGAINST (‘Hirt*’ IN BOOLEAN MODE);