Hi all,

there is still potential for optimisation:

To be able to create an index which gives
all rules for a tag like surface=gravel,
we order the expressions in the rules so
that they start with a tagkey=* or
tagkey=value.
We use the existing tags of an element
to find the rules that have to be checked.
Now, if we find two rule like

surface=gravel | surface=cobblestone {...}
surface=* & surface ~'(abc|xyz)' {...}

after searching for rules with tagkey surface=gravel
we should save the info that the 1st term in the
expression is true.

However, there is more to it:
Other rules may delete or chang the tag surface=gravel,
so this may require too much logic.
Maybe it can be done with the new cacheId.

Gerd