SearchResult

SearchResult class

表示匹配搜索查询的搜索结果。

public class SearchResult : IEnumerable<FoundDocument>

特性

姓名 描述
DocumentCount { get; } 获取找到的文档数。
EndTime { get; } 获取搜索的结束时间。
NextChunkSearchToken { get; } 获取用于搜索下一个块的块搜索令牌。
OccurrenceCount { get; } 获取找到的总出现次数。
SearchDuration { get; } 获取搜索持续时间。
StartTime { get; } 获取搜索的开始时间。
Truncated { get; } 获取一个值,表示结果被截断。
Warnings { get; } 获取描述结果的警告。

方法

姓名 描述
GetEnumerator() 返回一个遍历找到的文档集合的枚举器。
GetFoundDocument(int) 通过索引获取找到的文档。

评论

了解更多

例子

该示例演示了该类的典型用法。

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

// 创建索引
Index index = new Index(indexFolder);

// 索引指定文件夹中的文档
index.Add(documentFolder);

// 设置搜索选项
SearchOptions options = new SearchOptions();
options.FuzzySearch.Enabled = true; // 启用模糊搜索
options.FuzzySearch.FuzzyAlgorithm = new TableDiscreteFunction(3); // 设置最大差异数为 3

// 搜索包含单词“Einstein”或短语“Theory of Relativity”的文档
SearchResult result = index.Search("Einstein OR \"Theory of Relativity\"", options);

// 打印结果
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);
        // 打印找到的术语
        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]);
            }
        }
        // 打印找到的短语
        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]);
            }
        }
    }
}

也可以看看