mikegoatly / Lifti
Projects that are alternatives of or similar to Lifti
LIFTI
A lightweight full text indexer for .NET
Documentation
Read the documentation - there's lots of useful information and examples there.
Try it out!
Use LIFTI in a Blazor app - try out various queries against Wikipedia content
Simplest possible quick starts
Install-Package Lifti.Core
Contribute
It would be great to have more people contributing to LIFTI - how can you help?
- Create issues for bugs you find - level 1
- Create feature suggestions - level 2
- Create pull requests for documentation changes - level 3
- Create pull requests for bug fixes or features - boss level
Goals
- Provide a very simple way to build an in-memory full text index.
- netstandard2 compatibility
- Persistance via explicit serialization/deserialization points. Automatic persistance to a backing store upon changes to the index is out of scope.
Non-goals
- Distributed transactions are out of scope and don't make much sense anyway given automatic persistance is not in scope. (the old version did support this but I don't think anyone actually used it though - I know didn't :))
Significant differences between new and old implementations
The old implementation followed a very simple tree structure where every node in the tree linked to its descendants via relevant chars, e.g.:
A
╚P
╠E (matches APE)
╚P
╚L
╚E (matches APPLE)
The new implementation expands upon this by allowing a node to also contain a series of "intra-node" characters - this reduces the number of nodes in the tree, reducing the overall memory footprint and allows for potential gains in search times. (less object traversal required):
AP
╠E (matches APE)
╚PLE (matches APPLE)