IFieldExtractor

IFieldExtractor interface

Ger metoder för att extrahera fält från ett dokument.

public interface IFieldExtractor

Egenskaper

namn Beskrivning
Extensions { get; } Får de tillägg som stöds.

Metoder

namn Beskrivning
GetFields(Stream) Extraherar alla fält från det angivna dokumentet.
GetFields(string) Extraherar alla fält från det angivna dokumentet.

Anmärkningar

Läs mer

Exempel

Exemplet visar hur man implementerar gränssnittetIFieldExtractor .

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();
    }
}

Exemplet visar hur man använder Custom Extractor för indexering.

string indexFolder = @"c:\MyIndex\"; // Ange sökväg till indexmappen
string documentsFolder = @"c:\MyDocuments\"; // Ange sökväg till en mapp som innehåller dokument att söka efter

Index index = new Index(indexFolder); // Skapa eller ladda ett index

index.IndexSettings.CustomExtractors.Add(new LogExtractor()); // Lägger till anpassad textextraktor till indexinställningar

index.Add(documentsFolder); // Indexering av dokument från den angivna mappen

Se även