Now it support only `String` and `FixedString`

https://github.com/ClickHouse/ClickHouse/blob/33aefa832b3c544934a757cc9d0e284252a1dd3e/src/Storages/MergeTree/MergeTreeIndexFullText.cpp#L809

Seems that `LowCardinality(String)` can be supported too, because we only use `column->getDataAt` to retrieve data and it will work on `LowCardinality(String)` in same way as for `String`
https://github.com/ClickHouse/ClickHouse/blob/33aefa832b3c544934a757cc9d0e284252a1dd3e/src/Storages/MergeTree/MergeTreeIndexFullText.cpp#L543
https://github.com/ClickHouse/ClickHouse/blob/33aefa832b3c544934a757cc9d0e284252a1dd3e/src/Storages/MergeTree/MergeTreeIndexFullText.cpp#L145
}
        if (!data_type.isString() && !data_type.isFixedString())
            throw Exception("Bloom filter index can be used only with `String`, `FixedString` column or Array with `String` or `FixedString` values column.", ErrorCodes::INCORRECT_QUERY);
    }
    if (index.type == NgramTokenExtractor::getName())
    {
        if (index.arguments.size() != 4)
            throw Exception("`ngrambf` index must have exactly 4 arguments.", ErrorCodes::INCORRECT_QUERY);
    }
    else if (index.type == SplitTokenExtractor::getName())
    {
        if (index.arguments.size() != 3)
            throw Exception("`tokenbf` index must have exactly 3 arguments.", ErrorCodes::INCORRECT_QUERY);
    }
    else
    {
        throw Exception("Unknown index type: " + backQuote(index.name), ErrorCodes::LOGICAL_ERROR);
    }
    assert(index.arguments.size() >= 3);
    for (const auto & arg : index.arguments)
        if (arg.getType() != Field::Types::UInt64)
            throw Exception("All parameters to *bf_v1 index must be unsigned integers", ErrorCodes::BAD_ARGUMENTS);
    
    BloomFilterParameters params(
        index.arguments[0].get<size_t>(),
        index.arguments[1].get<size_t>(),
        index.arguments[2].get<size_t>());
}
}