Skip to content

Foundatio LuceneDynamic Lucene Queries for Apps

Enable powerful user-driven search queries in your .NET applications with Entity Framework and Elasticsearch support

Foundatio.Lucene

Quick Example

csharp
using Foundatio.Lucene;

// Parse a user query
var result = LuceneQuery.Parse("title:hello AND status:active");

if (result.IsSuccess)
{
    var document = result.Document; // QueryDocument (root AST node)
}

Entity Framework

csharp
using Foundatio.Lucene.EntityFramework;

var parser = new EntityFrameworkQueryParser();
var filter = parser.BuildFilter<Employee>("name:john AND salary:[50000 TO *]");
var results = await context.Employees.Where(filter).ToListAsync();

Elasticsearch

csharp
using Foundatio.Lucene.Elasticsearch;

var parser = new ElasticsearchQueryParser(config =>
{
    config.UseScoring = true;
    config.DefaultFields = ["title", "content"];
});
var query = parser.BuildQuery("author:john AND status:active");

Released under the Apache 2.0 License.