検索ビルダーの検索を検索式で使いたい

2009年09月17日 00:21

 検索ビルダーを使うと、「作成日が2009/09/15以前の文書」のような検索式を作る事が出来ます。
こんな感じです。(クリックすると画像は拡大します)

検索ビルダー

これをアプリケーションで使ったりするには、検索式として実行する必要があるのですが、どのような検索式を使えばいいのでしょうか。フィールド検索で日付フィールドなどを条件にすることは出来ますが、すべての文書に作成日に関するフィールドがあるとは限りません。

ここはサポートらしく検索の動きを調べてみましょう。
クライアントのNotes.ini に以下のような設定を行います。

Debug_FTV_Search=1 (全文検索の詳細なログを出力します)
Debug_Console=1 (デバッグ出力用のコンソール画面を出します)

この設定をしてローカルのDBに対して同じ検索をしてみてください。
以下のようなログが確認できると思います。


[0CFC:0002-0388] IN FTGSearch
option = 0x400019
[0CFC:0002-0388] Query: (([_CreationDate] < 20090915) )
[0CFC:0002-0388] Engine Query: (( `N101=[*,40071)`))


赤字にしたところが実際の全文検索として実行されたQueryです。
つまり、「[_CreationDate] < 20090915」と検索バーに入力しても同じ結果を得る事が出来ます。
簡単に言うと、_CreationDate と言う全文検索用の予約フィールドがあるような構文になります。これで検索ビルダーのような検索を行うことが出来ます。
ちなみに「更新日」]の場合は_RevisionDateになります。
全文検索を使って色々な文書を取って来るようなアプリを開発している人には便利かもしれません。

・・・とここまではブロガー的なコメントをしてみましたが、 一応サポート的な観点でもコメントしておきます。 
 上述したような検索構文はヘルプも含めてドキュメントには記載されていないものです。
内部的には同じ事をしているので特に結果に違いが出るような事は無いと思いますが、このような構文の使用は将来のバージョンで同じ構文であるとは限りませんし、互換性の問題が出る可能性もあります。
 したがって限定利用する分には問題ないと思いますが、改修困難な大規模アプリケーションなどで安易にこのような実装を行うことは避けてください。

9/18 追記:
 上述の記載はデザイナーヘルプに載っていました。なのでサポート上の注意のコメントは気にしなくてもよい内容なので、安心してご利用下さい。



コメント

  1. 鈴喜 幸久 | URL | -

    Re: 検索ビルダーの検索を検索式で使いたい

    この_CreationDate、_RevisionDateってデザイナヘルプに記載があったと思います。当方7なんですが、トピック"検索フォームをカスタマイズする"の"ヘッダー情報を検索する (作成日または修正日による検索)"にあります。
    違っていたらすみません。

  2. 長島 広隆 | URL | -

    載っていました!

    鈴喜さん

    ありがとうございます。
    デザイナーヘルプで記載があるのを確認しました!
    「検索フォームをカスタマイズする 」の項などでこのアイテムについて説明されていました。
    サポート云々の話は考慮する必要が無いですね。

    ありがとうございました。
    私自身ヘルプが十分に確認出来ておらず、勉強になりました。

コメントの投稿

(コメント編集・削除に必要)
(管理者にだけ表示を許可する)

トラックバック

この記事のトラックバックURL
http://hnagasim.blog8.fc2.com/tb.php/234-a185bdbb
この記事へのトラックバック


最新記事