Lunatic Sol

IT Tips

CreateFTIndex メソッドのオプション

2004-06-09 22:22:29 | LotusScript
LotusScript で全文索引のオプションをチェックできないかな、とデザイナーヘルプを見ていたら Notes 6 からいくつか FT 関連で追加されているメソッドがあることを発見。そのうちのひとつ CreateFTIndex メソッド (NotesDatabase クラス) では全文索引のオプションをセットすることができる。これは便利ということでいろいろ試してみた。しかし一点不明なことがある。FTINDEX_ATTACHED_BIN_FILES の動きがよくわからない。

Sub Initialize
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Set db = s.CurrentDatabase
    options& = FTINDEX_ATTACHED_BIN_FILES
    Call db.CreateFTIndex(Clng(options&), True)
End Sub

上記のように FTINDEX_ATTACHED_BIN_FILES 単体で処理すると全文索引のオプションが全部外れてしまう。でも、5つのオプションを全部組み合わせてみたら添付ファイルの詳細検索も設定される。うーん、といろいろやってみたらわかった。どうやら FTINDEX_ATTACHED_FILES (1) と組み合わせないと使えないらしい。

でも良く考えたら当然の動作なのかも。だって「簡易検索 (フィルターなし)」と「詳細検索 (添付ファイルフィルターあり)」はどちらかしか選択できないオプションであり、仮に FTINDEX_ATTACHED_BIN_FILES だけで有効になるのだとすると、FTINDEX_ATTACHED_FILES と組み合わせた時にはどっちが有効になるのかわからないもんね。

ただそうであったとしても、ヘルプにはちゃんと書いておいて欲しいなぁと思ったり。ちゅうことで、上記サンプルの options& のところを FTINDEX_ATTACHED_BIN_FILES + FTINDEX_ATTACHED_FILES にしてあげれば添付ファイルフィルターを有効にした FT オプションがセットされます。

2004/06/25 Updated
テストでは options& という Long 型変数は使わずに FTINDEX_ATTACHED_BIN_FILES + FTINDEX_ATTACHED_FILES と定数を合算した 17 を直接明示していました。その環境では何ら問題ない。で、あとで options& という変数を使うと失敗しました。あれれ?と思って CreateFTIndex の引数にて Clng() で強制的に LONG 型に変換してあげたら問題なくオプションが効きました。ということで、Clng() をセットするのを忘れないように。サンプルの赤字部分です。

最新の画像もっと見る