Получение списка полей с совпадениями

Задача: есть таблица документов, каждый текстовый атрибут документа — отдельное поле в таблице, при поиске нужно понять, в каких именно атрибутах было совпадение.

Есть ли возможность вернуть все имена (или любые другие опознавательные данные) полей, в которых MATCH() запрос нашел совпадения и добавил документ в результат?

При прочтении документации обнаружил, что можно достать поля, попавшие в выборку с использованием ранкера, а конкретно параметра field_mask (через PACKEDFACTORS() + ranker=expr или WEIGTH() + ranker=fieldmask). В качестве решения достать field_mask было бы достаточно — как я понял, это возможно через UDF(PACKEDFACTORS()) + ranker=expr. Возможно, есть способ получить эти данные более простым путем?

fieldmask - это правильно. Можно и без UDF. Есть недокументированная фукнция rankfactors(), которая возвращает то же, что packedfactors(), но отличие в том, что к rankfactors() можно применять строковые функции и, соответственно, выпарсить оттуда через regex() или substring_index() то, что нужно.

select rankfactors() , id from tbl where match ('@(fld,fl2) *word*') and attr = 123456 option ranker=export('1')\G

ranker=export('1') важен. В rankfactors() был недавно баг, он пофикшен в dev версии.