Lucene.NET SQL is a library that enables persistance of Lucene index files to SQL databases.
- MySQL
- PostgreSQL
- SQL Server
Currently this package is in alpha
while we wait for lucene.net 4.8
to be released.
If you want to use Lucene.NET SQL to develop commercial projects, and applications, the Commercial license is the appropriate license. With this option, your source code is kept proprietary. Purchase a Lucene.NET SQL Commercial License at gowengit.github.io/lucene-net-sql
If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use Lucene.NET SQL under the terms of the GPLv3.
Below are some general use examples of the library.
var options = new SqlDirectoryOptions(connectionString, "ExampleDirectory");
using var mySqlOperator = MySqlLuceneOperator.Create(options);
using var directory = new LuceneSqlDirectory(options, mySqlOperator);
// Rest is standard Lucene code
using var analyzer = new StandardAnalyzer(LuceneVersion.LUCENE_48);
using var writer = new IndexWriter(directory, new IndexWriterConfig(LuceneVersion.LUCENE_48, analyzer));
// ...
Note: MySqlLuceneOperator
is linked to a single MySQL
connection so should be either transient or short lived.
Performance benchmarks were done to compare local file system vs local SQL instance performance.
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19041.508 (2004/?/20H1)
AMD Ryzen 5 2600, 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=3.1.401
[Host] : .NET Core 3.1.7 (CoreCLR 4.700.20.36602, CoreFX 4.700.20.37001), X64 RyuJIT
Job-QKPTDT : .NET Core 3.1.7 (CoreCLR 4.700.20.36602, CoreFX 4.700.20.37001), X64 RyuJIT
Method | Mean | Error | StdDev | Median |
---|---|---|---|---|
FuzzySearchMySqlTenNovels | 28.877 ms | 0.4831 ms | 0.4519 ms | 28.771 ms |
FuzzySearchFileSystemTenNovels | 3.107 ms | 0.0950 ms | 0.2771 ms | 3.046 ms |
QuerySearchMySqlTenNovels | 6.424 ms | 0.1187 ms | 0.2554 ms | 6.332 ms |
QuerySearchFileSystemTenNovels | 1.170 ms | 0.0233 ms | 0.0635 ms | 1.143 ms |
Method | Mean | Error | StdDev | Median |
---|---|---|---|---|
FuzzySearchMySqlHundredNovels | 290.90 ms | 1.621 ms | 1.354 ms | 290.74 ms |
FuzzySearchFileSystemHundredNovels | 20.94 ms | 0.288 ms | 0.256 ms | 20.83 ms |
QuerySearchMySqlHundredNovels | 52.00 ms | 1.012 ms | 1.082 ms | 51.85 ms |
QuerySearchFileSystemHundredNovels | 11.44 ms | 0.207 ms | 0.388 ms | 11.24 ms |