Skip to content

FastSearch! A .NET library for searching against a large list of objects (i.e. in-memory).

License

Notifications You must be signed in to change notification settings

MILL5/FastSearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastSearch

Welcome to FastSearch!

This project is meant to provide quick, easy text (i.e. string) searching over a list of objects. We take two assumptions which are that we are doing case insensitive searching and can search at any point in the string.

Algorithm Description
LinqSearch Uses a simple Parallel LINQ Contains query with precomputed case insensitive strings
HashSearch Uses a precomputed hash of each substring combination
CharSequenceSearch Uses a character sequence tree to facilitate searching

Here are some quick results from testing.

  • Search results is the total time to perform 10000 searches.
  • Indexing results is the total time to index 10000 items.

We will update the library with new and more interesting techniques as time goes on. In addition, we plan to keep this a generic library which can be used widely by all developers. We are taking this approach replace functionality with new and improved algorithms as they are made available.

How To Get Started

  1. Download the FastSearch library from NuGet.
  2. Make sure your objects override ToString().
  3. Create a new CharSequenceSearch passing in your IEnumerable<T>

Features

  1. Support for ToString() out-of-the-box.
  2. Index function Func<T, string> to return a custom string representation of an object.
  3. Maximum degree of parallelism for index building and searching

Enjoy!

Your Friends @MILL5

About

FastSearch! A .NET library for searching against a large list of objects (i.e. in-memory).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages