How to index a collection so unknown fields can be matched by query?

It would be great to be able to do a match query for any of the collection fields. Suppose I have a collection of documents like -

{
   "name" : "item_1_quantity_1",
   "key" : "kolp_key"
   "host" : "examplehost.local:27018",
}

I want to allow a match for name, key, and host. I have ~20 fields, ~100000 documents.

I heard of a strategy for inserting fields into an array of properties, that is indexed using MultiKey indexes instead of many indexes/compound indexes, such as:

{
    "properties" : [ 
        {
            "k" : "name",
            "v" : "item_1_quantity_1"
        }, 
        {
            "k" : "key",
            "v" : kolp_key
        }

The goal here is to save writing time.
Does that make sense?

Nothing stops you from doing that.

Then you optimize the most used queries by creating indexes.