using System.Text; using BlueCurve.Search.Document.Common; using BlueCurve.Search.Indexer.Abstractions; using BlueCurve.Search.Indexing; namespace BlueCurve.Examples; public sealed class PlainTextIndexer : IFile { public Task IndexAsync(DocumentDownload document, FilePluginParameters parameters, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var content = Encoding.UTF8.GetString(document.Content); var index = parameters.DocumentIndexBuilder .AddFields(Field.CreateMainContentField(content)) .AddFields(Field.CreateTitleField("Example document")) .Build(new ContentType("text/plain")); return Task.FromResult(index); } public void Dispose() { } public ValueTask DisposeAsync() => ValueTask.CompletedTask; }