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 に設定

// 「アインシュタイン」という単語または「相対性理論」というフレーズを含むドキュメントを検索します
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]);
            }
        }
    }
}

関連項目