For NLP it is common to want to use `CosineDist`, which is a `SemiMetric`. This is not going to be compatible with the BallTree, I think. but it should be fine with the `BruteTree`.