I'm searching for a mature java M-Tree implementation -- Or even ANY M-Tree implementation (besides the only implementation I have found)
http://en.wikipedia.org/wiki/M-tree
For those who haven't heard of an M-tree (like me 2 days ago), an M-Tree is a search tree that can retrieve "n-nearest entries" or "all entries within Distance d" when the keys it uses can be placed in a "metric space" (the M stands for Metric).
I found one online at: https://github.com/erdavila/M-Tree
This implementation is workable if necessary but it is not Serializable, does not provide a "contains()" method, and it is currently throwing an assertion error (which I've figured out how to fix).
If a slightly more polished implementation exists I'd like to know because this data-structure seems super useful and I'd like to find a canonical implementation.
--- Added more info (in an effort to keep this question from getting closed) ---
My end goal is a Map in which the "public Value get(Key)" method returns the "closest" Value even when there isn't a precise Key match. Because I'm using Keys that are defined over a Metric Space I'm looking at for at a MTree to handle the "closest" part of this problem.
The implementation above isn't going to work because (1) it fails when the same Key is put in twice, (2) it won't allow me to remove a Key, and (3) it won't allow me to test if a Key was already inserted.