検索ユーティリティにより、ユーザーは個々のアプリケーションまたはドメイン全体の情報を検索できます。検索フォームは、組織のニーズに合わせてカスタマイズできます。例えば、アプリケーションの開発者は、会社のロゴをフォームに追加したり、フィールドの配置を変更できます。
また、カスタムフォームを個々のデータベースに追加して、個々のデータベース内で Web 検索をカスタマイズできます。
個々のアプリケーションの検索設定の詳細については、「データベースコピーの全文索引を作成する」を参照してください。ドメイン検索の設定の詳細については、『Domino Administrator 7 ヘルプ』を参照してください。
フォームをカスタマイズするには、次のことができます。
ドメイン検索の場合、Notes クライアントではカタログサーバーの catalog.nsf というデータベースにある [DomainQuery] という名前のフォームを検索フォームとして使用します。このフォームでは FTDomainSearch メソッドを使用して、検索を実行します。Web ドメイン検索の場合、URL コマンド [OpenForm] により任意のフォームを使用できます。また、URL コマンド用の引数として、またはフィールドの取得値により引数を与えることで URL コマンド [SearchDomain] を構築し、呼び出して、検索を実行します。
Web 上で個々のデータベースを検索する場合、URL コマンド [$SearchForm?SearchView] を使用して実行できます。この場合、Domino は実際の名前または別名「$$Search」の付いたフォームを、現在のデータベースで検索します。フォームが存在する場合は、そのフォームを開きます。フォームが存在しない場合は、Domino¥Icons ディレクトリに保存されている search.h ファイルを基に、デフォルトの検索フォームが表示されます。[$$Search] フォームの場合、URL コマンド用の引数として、またはフィールドの取得値により引数を与えることで URL コマンド [SearchView] を構築し、呼び出して、検索を実行します。デフォルトの search.h フォームもカスタマイズできます。
Web 用の検索情報フォームをカスタマイズする場合は、次の表を参照してください。この表には、SearchDomain または SearchView URL を介して初期検索を実行するために使用される URL コマンド用の引数が一覧表示されています。結果ページ上では、結果フォームのボタンとホットスポットがこれらの値を使用できます。例えば、最初の検索フォームで &SearchOrder=2 を指定します。結果ページでは、[SearchOrder] フィールドの値は 2 です。結果フォームの [次へ] ボタンは、この値を次ページのために使用できます。または、違う値を指定して上書きしてもかまいません。
一部のフィールドでは、TRUE または FALSE を指定できますが、これらの値を結果ページへ引き渡すと、値は 1 または 0 になります。
オプションの引数 |
説明 |
デフォルト値 |
---|---|---|
Query |
検索文字列。詳しくは、Notes クライアントのヘルプで「演算子を使用して検索照会を絞り込む」を参照してください。 |
なし |
SearchMax |
返されるエントリ合計の最大値です。0 を指定すると制限なしになります。 |
なし。Note that SearchMax のデフォルト値と最大値は、Domino ディレクトリの設定により Web サーバー用に設定することができます。 |
SearchWv |
語尾変化を含みます: TRUE (または 1) または FALSE (または 0) |
FALSE |
SearchOrder |
1 = 該当語句の頻度順 2 = 古い順 3 = 新しい順 4 = 表示順 (SearchView の場合のみ) |
1 |
SearchThesaurus |
類義語、同義語を使用します: TRUE (または 1) または FALSE (または 0) (このオプションは R5 の検索エンジンでは無視されます。) |
FALSE |
SearchFuzzy |
あいまい検索を使用します: TRUE (または 1) または FALSE (または 0) |
FALSE |
SearchEntry |
検索結果の各エントリ用に使用するフォーム名 (SearchDomain の場合のみ) |
ResultEntry |
Start |
結果をページで区切った場合の最初の文書です。0 を指定するとページ区切りがなくなります。 |
0 |
Count |
結果をページで区切った場合の結果文書数です。0 を指定するとページ区切りがなくなります。 |
0 |
範囲 |
検索範囲 1 = Notes データベースのみ 2 = ファイルシステムのみ 0 = 両方 |
0 |
Notes クライアント用に検索フォームをカスタマイズする場合には、FTDomainSearch メソッドを使用する必要があります。
エージェントの全文検索入力エリアとともに表示される [検索の追加] ボタンをクリックすると、「作成日」または「更新日」を基準に文書を検索できます。FTSearch メソッドで使用するためにこのような照会を記述する場合、次の特殊なアイテム名を使用できます。
ヘッダーフィールド |
アイテム名 |
---|---|
CREATION DATE |
_CreationDate |
REVISION DATE |
_RevisionDate |
DB TITLE (ドメイン索引の場合のみ) |
_Title |
DB CATEGORIES (ドメイン索引の場合のみ) |
DbCategories |
NOTE TITLE |
_Note_Title |
AUTHOR |
_Note_Author |
例えば、2000 年 1 月 5 日より以前に作成された全文書を検索するには、次の照会文字列を使用します。
[_CreationDate] < 01/05/2000
文書に保存されているフィールド名はありません。つまり、実際の日付はフィールドからではなく文書のヘッダーから取得します。したがって、これらの文書の予約名は、[文書のプロパティ] ダイアログボックスのフィールド項目に表示されていなくても使用できます。
例えば、「過去 日間」というように、現在の日付からの差に基づき文書を検索する検索ビルダー機能に対応する構文はありません。実行時にエージェントにより実際の日付を取得する必要があります (エージェントは現在の日付を調整して実際の日付を計算できます)。日付の形式はユーザー設定により異なります。また、照会を評価するワークステーションまたはサーバーに合った形式を使用する必要があります。
フィールド名 |
説明 |
---|---|
DSCreationTime |
文書の作成時刻 |
DSModifiedTime |
文書の更新時刻 |
DSURL |
文書の URL |
DSDBTitle |
データベースタイトル |
DSDocSummary |
文書の概要 |
DSDocTitle |
文書のタイトル |
DSDocAuthor |
文書の作成者 |
DSScore |
適合スコア |
DSSServer |
文書の索引が作成されているサーバー名 |
DSType |
Notes 文書の場合は 0、外部またはファイルシステムの文書の場合は 1 |
必要に応じて、結果フォームに名前を付けることができます。そしてその名前を、SearchDomain URL 内に指定するか、FTDomainSearch の LotusScript® 呼び出しに指定します。URL で名前が指定されていないと、$$SearchDomainTemplate という名前のフォームが検索されます。
ドメイン検索の結果フォームを設計したり、表示するときは、ドメインインデクサが結果に表示する文書タイトルをどこから取得するのかを知っておくと便利です。インデクサは、各文書で次の Notes フィールドまたはアイテムをここに記載した順番で検索します。これらのフィールドまたはアイテムは、文書のタイトルを表すのに使用します。[Title]、[Subject]、[Headline]、[Topic] の各フィールド、ウィンドウのタイトル (Domino アプリケーションの開発者が指定した順序で検索)、ビューの概要 (デフォルトのフォームとビューを使用して検索)。これらのアイテムが見つからない場合は、ドメインインデクサにより「Document has no title」というメッセージが結果として表示されます。
Microsoft Office などのファイルシステムでは、タイトルと作成者が文書のプロパティの各フィールドから抽出されます。HTML ファイルの場合、TITLE タグと AUTHOR タグを使用します。
次に示す LotusScript は、Notes クライアントが検索フォーム上で使用する検索アクションホットスポットの click イベントに割り当てられています。結果フォームと結果エントリフォームの名前を呼び出す行は、太字で示されています。
Sub Click(Source As Button)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim q As String
Dim l As Integer
Dim d As Integer
Dim sort As String
Dim stype As Integer
Dim useint As Integer
Dim rtype As String
Dim rformname As String
Set db=s.CurrentDatabase
Set uidoc = w.currentdocument
uidoc.refresh
Set doc=uidoc.Document
q=doc.query(0)
l=doc.resultlimit(0)
d=doc.MaxDisplay(0)
sort = doc.sort(0)
usestr = doc.use
sscope=doc.searchscope
rtype=doc.GetItemValue("SearchType")(0)
If rtype = "1" Then
rformname="DetailedResultEntry" Else
rformname="ResultEntry" End If
Select Case sort
Case "R" stype = FT_SCORES
Case "O" stype = FT_DATE_ASC
Case "N" stype = FT_DATE_DES
End Select
Forall values In usestr
If values = "2" Then useint = useint + FT_STEMS
If values = "3" Then useint = useint + FT_FUZZY
End Forall
Forall values In sscope
If values = "1" Then useint = useint + FT_DATABASE
If values = "2" Then useint = useint + FT_FILESYSTEM
End Forall
On Error Resume Next
If db.isopen Then
If Err <> 0 Then
Messagebox STR_DBOPEN_ERROR
Err = 0
Exit Sub
End If
Set srdoc = db.ftdomainsearch(q, l, stype,useint, 0,d,rformname) If Err <> 0 Then
Messagebox STR_FTERROR_PREFIX & Error$, 0 , STR_ERROR
Err=0
Exit Sub
End If
srdoc.Form="SearchResults" Call w.EditDocument(False, srdoc, True)
End If
End Sub
SearchView の Web 検索結果ページをカスタマイズするには:
フォーム名 |
必要なフィールド |
コメント |
---|---|---|
$$SearchTemplate for viewname |
$$ViewBody |
フォームを特定ビューに関連付けます。Domino では、[$$ViewBody] フィールドが必要ですが、値は無視されます。フォーム名には viewname が含まれます。viewname は、ビューの別名ですが、別名がない場合はビュー名になります。例えば $$SearchTemplate for All Documents という名のフォームでは、そのフォームを [すべての文書] ビューを持つフォームに関連付けます。 |
$$SearchTemplateDefault |
$$ViewBody |
Domino では、[$$ViewBody] フィールドが必要ですが、値は無視されます。このフォームは、特定のフォームに関連付けられていないすべての Web 検索のデフォルトです。 |
URL コマンドの詳細については、「Web アプリケーションのためのプログラミングオプション」を参照してください。
結果のページの間を前後に移動できるようにするには、SearchResults フォームにボタンまたはホットスポットを追加します。[次へ] と [前へ] ボタンが使用できるフィールドの一覧を、次の表に示します。Notes クライアントでは、ボタンは修正済み引数を持つ LotusScript の FTDomainSearch 関数を再呼び出しする必要があります。Web では、ボタンは結果の新しいセットを取得するための新規 SearchDomain URL の作成に使用されます。
フィールド |
説明 |
---|---|
Query |
使用される検索文字列です。 |
Start |
開始文書番号です。 |
Count |
このページで要求された結果の数です。 |
Hits |
このページに返された結果の実際の数で、要求された Count よりも少ない場合があります。このフィールドは、[次へ] ボタンの Start パラメータを定義するのに便利です。 |
TotalHits |
検索によって見つかったヒットの合計数です。 |
SearchMax |
返されるエントリ合計の最大値です。0 を指定すると制限なしになります。 |
SearchWv (URL コマンド専用) |
語尾変化を含みます: 1 または 0。 |
SearchOrder (URL コマンド専用) |
1 = 該当語句の頻度順 2 = 古い順 3 = 新しい順 4 = 表示順 (SearchView の場合のみ) |
SearchThesaurus (URL コマンド専用) |
類義語、同義語を使用します: 1 または 0。 |
SearchFuzzy (URL コマンド専用) |
あいまい検索を使用します: 1 または 0。 |
SortOptions (Notes クライアント専用) |
FT_SCORES = 該当語句の頻度順 FT_DATE_ASC = 古い順 FT_DATE_DES = 新しい順 |
OtherOptions ((Notes クライアント専用) |
FT_STEMS = 語尾変化を含む FT_FUZZY = あいまい検索を使用する FT_DATABASE = データベースを検索する FT_FILESYSTEM = ファイルシステムを検索する |
SearchEntry (ドメイン検索専用) |
使用した入力結果フォームの名前 |
SearchView (SearchView URL コマンド専用) |
検索対象ビューの一意のテキスト識別子。この識別子は、以降の SearchView URL コマンドの構築に使用すると便利です。 |
Scope (SearchDomain URL コマンド専用) |
検索範囲: 1 = Notes データベースのみ 2 = ファイルシステムのみ 0 = 両方 |
次の表のフィールドは、Start パラメータと Count パラメータで使用可能であり、必要に応じて結果フォームに追加する必要があります。
フィールド |
説明 |
---|---|
Hits |
返されたヒットの実際の数。このフィールドは、[次へ] の Start パラメータを定義するのに便利です。 |
TotalHits |
ページ数を考慮しないで返されたヒットの合計数。 |