- Performance improvements.
- Reduced GC overhead of binary search during tree traversals, via pull request #27 from Clement Pang (many thanks!)
- Additionally added some caching to further reduce GC overhead of the Node.getOutgoingEdges() method during tree traversals
- Deployed to Maven central
- Added new methods to
InvertedRadixTreevia pull request #17 from Jose Luis Pedrosa (many thanks!):getLongestKeyPrefixing()getValueForLongestKeyPrefixing()getKeyValuePairForLongestKeyPrefixing()
- Added support for using the library in OSGi environments via pull request #16 from Brian O'Connor (many thanks!)
- Removed the unused support internally to
restrictConcurrency, and associated constructors which allowed it to be requested. As the feature was unused internally it's unlikely anyone was using these constructors, so this should not cause problems, but please open an issue if any are encountered - Full test coverage
- Deployed to Maven central
- The trees are now serializable
- Deployed to Maven central
- Added tree.size() methods
- Note tree.size() is relatively expensive for the radix trees having O(n) time complexity, but this might be useful for debugging purposes
- Deployed to Maven central
- Up to 50% reduction in memory overhead for UTF-8 single byte/ASCII-compatible strings
- Added
DefaultByteArrayNodeFactory- represents characters in the tree using UTF-8 single byte per character (throwing an exception if incompatible characters are detected) - Added
SmartArrayBasedNodeFactory- automatically selects between UTF-8 and UTF-16 character encoding on a node-by-node basis (DefaultByteArrayNodeFactoryandDefaultCharArrayNodeFactoryrespectively) - Deployed to Maven central
InvertedRadixTreenow extends the pubic interface ofRadixTree- This allows the same tree to be searched for keywords starting with a prefix, and to be used to scan documents for keywords contained in the tree
- Minor change in the API of
InvertedRadixTreeto provide additional methods, should be a drop in replacement for 2.1.x - Deployed to Maven central
- Fixed potential for
InvertedRadixTreeto return false positives when input document is shorter than keywords in the tree, with thanks to Beth Tirado for patch (issue 6) - Additional test cases
- This is a drop in replacement for 2.1.0
- Deployed to Maven central
- Added feature to
InvertedRadixTreeto scan input documents for keywords stored in the tree which prefix those documents. SeeInvertedRadixTree.getKeysPrefixing()and related methods - This is conceptually similar to the existing
InvertedRadixTree.getKeysContainedIn()methods, but is restricted to scanning the input for keys prefixing the document instead of keys contained anywhere in the document - This can be used to process phone numbers
- Discussed in issue 5
- Full test coverage
- Deployed to Maven central
- Uses lazy evaluation for lower latency, lower CPU/memory usage, and better filtering support: see Frequently Asked Questions
- Minor API changes, example usage has been updated accordingly
- Added new methods for looking up keys/values:
RadixTree.getClosestKeys(issue 2) - Full test coverage
- Deployed to Maven central
- First public release
RadixTree,ReversedRadixTree,InvertedRadixTree,SuffixTree, Longest common substring solver- Full test coverage
- Deployed to Maven central