現在のエージェントが未処理と判断するデータベース内の文書を全文検索します。
Set notesDocumentCollection = notesDatabase .UnprocessedFTSearch( query$ , maxdocs% , [ sortoptions% ], [ otheroptions% ] )
query$
String 型。フルテキストの照会です。
maxdocs%
整数。照会で返される文書の最大数。このパラメータを 0 に設定すると、検索条件に合うすべての文書 (最大 5,000 まで。下の「全文索引」セクションを参照。) を取得します。
sortoptions%
整数。オプション。ソートオプション。次のいずれかを選択します。
otheroptions%
整数。オプション。検索オプション。オプションは、追加して組み合わせます。
notesDocumentCollection
NotesDocumentCollection. 選択したオプションによりソートされた、全文検索条件に一致した未処理文書のコレクションを返します。
このメソッドは、start パラメータを含まないこと以外は UnprocessedFTSearchRange メソッドと同じです。
このメソッドはエージェントスクリプトとビューアクションだけに有効です。また、NotesSession の CurrentDatabase プロパティから取得された NotesDatabase オブジェクトだけに呼び出されることがあります。エージェントまたはビューアクションに含まれないスクリプトでは、このメソッドは文書が 1 つも入っていない NotesDocumentCollection を返します。CurrentDatabase プロパティから取得されていない NotesDatabase オブジェクトで呼び出されたときは、このメソッドはエラーとなります。
このメソッドは次の 2 段階で動作します。
例えば、ビューのすべての選択文書を対象に実行されるエージェントの場合、UnprocessedFTSearch は選択文書だけを検索して、条件に一致する文書を返します。前回の実行以降に作成または変更された文書を対象とするエージェントの場合、UnprocessedFTSearch は NotesSession の UpdateProcessedDoc メソッドが処理済みのマークを付けていない文書だけを検索して、条件と一致する文書を返します。
次の表は UnprocessedFTSearch メソッドが返す文書を示します。エージェントを実行する前に文書が 1 回選択されます。
エージェントの実行対象 |
UnprocessedFTSearch によって返される文書が満たさなければならないすべての要件 |
---|---|
データベースのすべての文書 |
[エージェントのプロパティ] インフォボックスで指定された検索条件を満たすこと このメソッドで指定された全文検索の条件を満たすこと |
作成または変更されたすべての文書 |
このエージェントが UpdateProcessedDoc で処理していないこと エージェントが最後に実行されてから新規作成または更新されていること [エージェントのプロパティ] インフォボックスで指定された検索条件を満たすこと このメソッドで指定された全文検索の条件を満たすこと |
ビューのすべての未読文書 |
ビューにある未読文書 [エージェントのプロパティ] インフォボックスで指定された検索条件を満たすこと このメソッドで指定された全文検索の条件を満たすこと |
ビューのすべての文書 |
ビューにある文書 [エージェントのプロパティ] インフォボックスで指定された検索条件を満たすこと このメソッドで指定された全文検索の条件を満たすこと |
選択されたすべての文書 または ビューアクション |
ビューで選択されている文書 [エージェントのプロパティ] インフォボックスで指定された検索条件を満たすこと このメソッドで指定された全文検索の条件を満たすこと |
1 回の実行 |
現在の文書 |
新規に受信したメール文書 |
このエージェントが UpdateProcessedDoc で処理していないこと エージェントの最終実行後にデータベースに送信されたこと [エージェントのプロパティ] インフォボックスで指定された検索条件を満たすこと このメソッドで指定された全文検索の条件を満たすこと |
新規に更新された文書 |
このエージェントが UpdateProcessedDoc で処理していないこと エージェントの最終実行後に更新されたこと [エージェントのプロパティ] インフォボックスで指定された検索条件を満たすこと このメソッドで指定された全文検索の条件を満たすこと |
追加された文書 |
このエージェントが UpdateProcessedDoc で処理していないこと エージェントの最終実行後にデータベースに追加されたこと [エージェントのプロパティ] インフォボックスで指定された検索条件を満たすこと このメソッドで指定された全文検索の条件を満たすこと |
新規作成および変更された文書、新規に受信したメール文書、新規に追加された文書、新規に変更された文書で実行されるエージェントの場合、NotesSession の UpdateProcessedDoc メソッドを使用して、各文書を「処理済み」にします。「処理済み」にすると、再び変更、メール送信、追加をされないかぎり、エージェントはその文書を処理しません。このメソッドを文書ごとに呼び出さないと、エージェントは次回の実行時にも同じ文書を処理します。
UpdateProcessedDoc が処理済みのマークを付けるのは、このメソッドの呼び出し元の特定のエージェントが処理した文書だけです。あるエージェントで UpdateProcessedDoc を使用しても、他のエージェントが処理する文書には影響がありません。
その他のすべてのエージェントとビューアクションでは、UpdateProcessedDoc による影響はありません。
ビューアクションで使用されるとき、UnprocessedFTSearch は選択文書で実行されるエージェントの場合と同じ文書を返します。
データベースが全文索引付きでない場合、このメソッドは有効ですが、効率は低下します。索引があるかどうかを調べるには NotesDatabase の IsFTIndexed プロパティを使用します。全文索引が変更後に更新されていない場合、データベースの内容を完全には反映しません。ローカルデータベース上で索引の作成や更新を行うには、UpdateFTIndex メソッドを使用します。
このメソッドは、デフォルトでは最大 5,000 文書を返します。Notes.ini 変数 FT_MAX_SEARCH_RESULTS は、索引付きデータベース、または索引付きでなくてもクライアントのエージェントで実行されているデータベースについてのこの制限より優先されます。索引付きでなくても、サーバーのエージェントで実行されているデータベースについては、TEMP_INDEX_MAX_DOC Notes.ini 変数も設定する必要があります。絶対的な最大値は 2,147,483,647 となります。
ソートオプションを指定しないと、文書は関連性スコアを基準にしてソートされます。 一連の文書を関連性を基準にしてソートすると、関連性が最も高い文書が先頭に表示されます。 コレクションの各文書の適合スコアにアクセスするには、NotesDocument の FTSearchScore を使用します。
日付でのソートを要求すると、関連性スコアは得られません。結果の DocumentCollection を NotesNewsletter オブジェクトへ渡す場合、文書リンクは使用したソートオプションに応じて文書作成日か適合スコアでフォーマットされます。
語または句を検索するには、その語または句をそのまま入力します。ただし、検索キーワードを引用符で囲む必要があります。リテラル内の二重引用符はエスケープ処理してください。
ワイルドカードや演算子などの構文も使用できます。構文規則については、『Notes ヘルプ』の「特定のテキストを含む文書をデータベースで検索する」を参照してください。