See PHI1693. Previously, see T13509 for "field present" and "field absent" operators.
Currently, extensions can not define new custom Ferret fields like "animal-noises:moo". They can get these fields into the Ferret index and the content can be searched for, but they can't provide field functions and can't make animal-noises:~ match "any animal which makes a noise".
There are also a couple of adjacent upstream tasks (T13501, T13503) which likely have a lot of testing overlap.