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
out.function = RPNElement::FUNCTION_HAS;
        out.bloom_filter = std::make_unique<BloomFilter>(params);
        auto & value = const_value.get<String>();
        token_extractor->stringToBloomFilter(value.data(), value.size(), *out.bloom_filter);
        return true;
    }
    if (function_name == "notEquals")
    {
        out.key_column = key_column_num;
        out.function = RPNElement::FUNCTION_NOT_EQUALS;
        out.bloom_filter = std::make_unique<BloomFilter>(params);
        const auto & value = const_value.get<String>();
        token_extractor->stringToBloomFilter(value.data(), value.size(), *out.bloom_filter);
        return true;
    }
    else if (function_name == "equals")
    {
        out.key_column = key_column_num;
        out.function = RPNElement::FUNCTION_EQUALS;
        out.bloom_filter = std::make_unique<BloomFilter>(params);
        const auto & value = const_value.get<String>();
        token_extractor->stringToBloomFilter(value.data(), value.size(), *out.bloom_filter);
        return true;
    }
    else if (function_name == "like")
    {
        out.key_column = key_column_num;
        out.function = RPNElement::FUNCTION_EQUALS;
        out.bloom_filter = std::make_unique<BloomFilter>(params);
        const auto & value = const_value.get<String>();