IFieldExtractor

IFieldExtractor interface

Fornisce metodi per estrarre i campi da un documento.

public interface IFieldExtractor

Proprietà

Nome Descrizione
Extensions { get; } Ottiene le estensioni supportate.

Metodi

Nome Descrizione
GetFields(Stream) Estrae tutti i campi dal documento specificato.
GetFields(string) Estrae tutti i campi dal documento specificato.

Osservazioni

Saperne di più

Esempi

L’esempio mostra come implementare l’interfacciaIFieldExtractor .

public class LogExtractor : IFieldExtractor
{
    private readonly string[] extensions = new string[] { ".log" };

    public string[] Extensions
    {
        get { return extensions; }
    }

    public DocumentField[] GetFields(string filePath)
    {
        FileInfo fileInfo = new FileInfo(filePath);
        DocumentField[] fields = new DocumentField[]
        {
            new DocumentField("FileName", fileInfo.FullName),
            new DocumentField("CreationDate", fileInfo.CreationTime.ToString(CultureInfo.InvariantCulture)),
            new DocumentField("Content", ExtractContent(filePath)),
        };
        return fields;
    }

    private string ExtractContent(string filePath)
    {
        StringBuilder result = new StringBuilder();
        using (StreamReader streamReader = File.OpenText(filePath))
        {
            string line = streamReader.ReadLine();
            string processedLine = line.Remove(0, 12);
            result.AppendLine(processedLine);
        }
        return result.ToString();
    }
}

L’esempio mostra come utilizzare l’estrattore personalizzato per l’indicizzazione.

string indexFolder = @"c:\MyIndex\"; // Specifica il percorso della cartella dell'indice
string documentsFolder = @"c:\MyDocuments\"; // Specifica il percorso di una cartella contenente i documenti da cercare

Index index = new Index(indexFolder); // Creazione o caricamento di un indice

index.IndexSettings.CustomExtractors.Add(new LogExtractor()); // Aggiunta di un estrattore di testo personalizzato alle impostazioni dell'indice

index.Add(documentsFolder); // Indicizzazione dei documenti dalla cartella specificata

Guarda anche