当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2008年7月1日火曜日

データベースの検索1(全文検索)

DB内の文書を検索する方法を何度かに渡って紹介する。
今回は、全文検索。
検索スピードは速いが、ノーツDBに全文索引を作成しておかないと意味がない(検索自体は可能)。

サンプルは、自DBの中を全文検索するというものである。


Sub Click(Source As Button)
    '検索用データベースの変数定義
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim docs As NotesDocumentCollection
    Dim doc As NotesDocument
    
    Set db = session.CurrentDatabase
    
    '検索キー変数の定義
    Dim skey As String
    
    'その他の変数
    Dim i As Integer
    Dim stitle As String
    
    '検索文字列の入力
    skey = Inputbox( "検索したい文字列を入力してください。", "データベースの検索" )
    
    'データベースの全文検索
    'skeyが検索文字列、0は検索に一致した文書をすべて取得するというオプション
    Set docs = db.FTSearch( skey, 0 )
    
    stitle = ""
    For i = 1 To docs.Count
        Set doc = docs.GetNthDocument( i )
        'タイトルをsbjという変数に保存しておく。その際、1タイトルごとに改行する
        'Chr$(13)は改行コードを意味する
        stitle = stitle + Cstr( i ) + "." + doc.Subject( 0 ) + Chr$(13) 
    Next
    
    '検索結果の表示
    If docs.Count = 0 Then
        Messagebox "検索文字列に該当する文書はありませんでした。"
    Else
        Messagebox stitle, 0, "検索結果の文書のタイトル一覧"
    End If
End Sub

0 件のコメント: