❤️ If you use and like Examine please consider becoming a GitHub Sponsor ❤️
Examine allows you to index and search data easily and wraps the Lucene.Net indexing/searching engine. Lucene is super fast and allows for very fast searching even on very large amounts of data. Examine is very extensible and allows you to configure as many indexes as you like and each may be configured individually. Out of the box Examine gives you a Lucene based index implementation as well as a Fluent API that can be used to search for your data.
via Nuget
PM> Install-Package Examine
Tip: IExamineManager
is the gateway to working with examine. It can be resolved via a singleton: ExamineManager.Instance
.
-
Create an index
public void CreateIndexes(IExamineManager examineManager) { //Create and add a new index to the manager var myIndex = examineManager.AddIndex( new LuceneIndex( // Create a Lucene based index "MyIndex", // Named MyIndex new SimpleFSDirectory( // In a location of your choice new DirectoryInfo("C:\\TestIndexes")))); }
-
Populate the index
// Add a "ValueSet" (document) to the index // which can contain any data you want. myIndex.IndexItem(new ValueSet( Guid.NewGuid().ToString(), //Give the doc an ID of your choice "MyCategory", //Each doc has a "Category" new Dictionary<string, object>() { {"Name", "Frank" }, {"Address", "Beverly Hills, 90210" } }));
-
Search the index
var searcher = myIndex.GetSearcher(); // Get a searcher var results = searcher.CreateQuery() // Create a query .Field("Address", "Hills") // Look for any "Hills" addresses .Execute(); // Execute the search
Information and downloads for Examine releases
Tip: There are many unit tests in the source code that can be used as Examples of how to do things. There is also a test web project that has plenty of examples of how to configure indexes and search them.
© 2019 by Shannon Deminick
This is free software and is licensed under the Microsoft Public License (Ms-PL)