SearchResult

SearchResult class

Rappresenta un risultato di ricerca che corrisponde a una query di ricerca.

public class SearchResult : IEnumerable<FoundDocument>

Proprietà

Nome Descrizione
DocumentCount { get; } Ottiene il numero di documenti trovati.
EndTime { get; } Ottiene l’ora di fine della ricerca.
NextChunkSearchToken { get; } Ottiene un token di ricerca del blocco per cercare il blocco successivo.
OccurrenceCount { get; } Ottiene il numero totale di occorrenze trovate.
SearchDuration { get; } Ottiene la durata della ricerca.
StartTime { get; } Ottiene l’ora di inizio della ricerca.
Truncated { get; } Ottiene un valore che indica che il risultato è troncato.
Warnings { get; } Ottiene un avviso che descrive il risultato.

Metodi

Nome Descrizione
GetEnumerator() Restituisce un enumeratore che scorre la raccolta dei documenti trovati.
GetFoundDocument(int) Ottiene il documento trovato per indice.

Osservazioni

Saperne di più

Esempi

L’esempio mostra un utilizzo tipico della classe.

string indexFolder = @"c:\MyIndex\";
string documentFolder = @"c:\MyDocuments\";

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

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

// Impostazione delle opzioni di ricerca
SearchOptions options = new SearchOptions();
options.FuzzySearch.Enabled = true; // Abilitazione della ricerca fuzzy
options.FuzzySearch.FuzzyAlgorithm = new TableDiscreteFunction(3); // Imposta il numero massimo di differenze su 3

// Cerca documenti contenenti la parola "Einstein" o la frase "Teoria della relatività"
SearchResult result = index.Search("Einstein OR \"Theory of Relativity\"", options);

// Stampa il risultato
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount);
for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
    Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
    for (int j = 0; j < document.FoundFields.Length; j++)
    {
        FoundDocumentField field = document.FoundFields[j];
        Console.WriteLine("\t\tField: " + field.FieldName);
        Console.WriteLine("\t\tOccurrences: " + document.OccurrenceCount);
        // Stampa termini trovati
        if (field.Terms != null)
        {
            for (int k = 0; k < field.Terms.Length; k++)
            {
                Console.WriteLine("\t\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
            }
        }
        // Stampa frasi trovate
        if (field.TermSequences != null)
        {
            for (int k = 0; k < field.TermSequences.Length; k++)
            {
                string sequence = string.Join(" ", field.TermSequences[k]);
                Console.WriteLine("\t\t\t" + sequence.PadRight(30) + field.TermSequencesOccurrences[k]);
            }
        }
    }
}

Guarda anche