Вот некоторые хитрости (не очень оптимизированные)
используйте "яблоко" , например,
длина для яблоко составляет 5
SELECT
(LENGTH(abstract)-LENGTH(REPLACE(LOWER(abstract), 'apple', '')))/5
AS occurrences
FROM
textanalysis
WHERE
MATCH (abstract) AGAINST ('+apple' IN BOOLEAN MODE);
Что нужно сделать, это заменить яблоко (сократить длину абстрактного текста),
и вы сравниваете исходную длину, чтобы определить количество вхождений.