IFieldExtractor

IFieldExtractor interface

Fournit des méthodes pour extraire des champs d’un document.

public interface IFieldExtractor

Propriétés

Nom La description
Extensions { get; } Obtient les extensions prises en charge.

Méthodes

Nom La description
GetFields(Stream) Extrait tous les champs du document spécifié.
GetFields(string) Extrait tous les champs du document spécifié.

Remarques

Apprendre encore plus

Exemples

L’exemple montre comment implémenter l’interfaceIFieldExtractor .

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’exemple montre comment utiliser l’extracteur personnalisé pour l’indexation.

string indexFolder = @"c:\MyIndex\"; // Spécifiez le chemin vers le dossier d'index
string documentsFolder = @"c:\MyDocuments\"; // Spécifiez le chemin d'accès à un dossier contenant les documents à rechercher

Index index = new Index(indexFolder); // Création ou chargement d'un index

index.IndexSettings.CustomExtractors.Add(new LogExtractor()); // Ajout d'un extracteur de texte personnalisé aux paramètres d'index

index.Add(documentsFolder); // Indexation des documents du dossier spécifié

Voir également