Match is built for finding images that visually look similar. It doesn't understand the semantics of the image itself. There's no way to attach keywords, though plain-old-Elasticsearch is pretty good at that.
Does the algorithm generate a binary hash? or does it generates a real valued vector?
I have been using Tensor Flow to build something similar, though its significantly more computationally expensive but can allow you to find semantically related images. I still have to find an optimal encoding scheme for efficient nearest neighbors.