LIFTI

LIFTI is a simple to use netstandard2 compatible in-memory full text indexing API.

If you are building an application that refers to objects that contain lots of text, and you:

  1. Don't want to store all the text in memory all the time (e.g. files or other text-based resources)
  2. Want to be able to search the contents of the text quickly

Then LIFTI is for you. You could use it in:

  • Client applications, e.g. Blazor, UWP, Xamarin, WPF, Uno Platform
  • ASP.NET applications where you need to perform a fast search against a long list of words. An in-memory index of exclusion words could easily be used to do this.
  • Lots of other scenarios!

Getting Started

The simplest possible way to create a LIFTI index, index some text in it and retrieve search results.

Recipes

This cookbook provides a collection of examples to help you get started with LIFTI. Whether you’re building a search engine, a knowledge base, or any application that deals with large volumes of textual data, these recipes will guide you through common tasks and scenarios.

Index Construction

Use a FullTextIndexBuilder<TKey> to configure the behavior of your index.

Indexing Data

Once an index has been constructed, it can be populated using the various AddAsync methods.

Searching

How to search against a LIFTI index

Serialization

A LIFTI index can be serialized to a stream, and deserialized at a later date.

Custom stemmers

You can implement a custom stemmer if the default English Porter stemmer doesn’t meet your needs.

Reference

Low level reference documentation.

Frequently Asked Questions

Frequently asked questions about LIFTI

Last modified October 3, 2022: V3.3.0 (#50) (7171d2e)