XPagesでNotes文書検索サイトを作成する---その1

 

こんばんはニコニコ

 

前回の引き続き、文書検索サイトを作っていきたいと思います照れ

手元に適当なDBがないので、Tweet内容を保存していたDBを流用したいと思います。

 

コレね↓

 

 

簡単なUIは前回で作成できていたと思いますので、

これらのパーツにSSJSを組み込んでいきます。

 

1)Designerで前回作成した「demo_1」XPageを開きます。

 

2)ボタンコントロールを選択し、イベント>マウス onclick > サーバータグ > スクリプトエディタを選択してSSJSを記述します。

 

 

見やすいように画像を貼りましたニヤリ

3行目:編集可能コントロールに入っている値を取得しています。

4行目:viewScope変数を配列にしています。

7、8行目:検索対象となる、DB・対象View名を設定しています。

 

15行目で索引の有無を判定してなければ作成するようにしていますが、

事前に索引を作成されておくことをお勧めします。

 

26行目:指定されたDBの指定されたViewの全件を取得し、FTSearchをしています。

FTSearchと聞くとイメージ的にはdb.FTSearchな気がしますが、

dbで行ってしまうと設定文書やら関係のない文書までヒットさせてしまうため、

指定したViewを検索対象としています。

 

32行目から47行目:検索でヒットした文書で必要な情報をviewScope変数へ代入しています。

 

配列[0]:スコア

配列[1]:DBファイル名

配列[2]:DBタイトル

配列[3]:検索結果時のタイトルになるような値を持っているフィールドを指定

(今回はTwitterアカウントですが、5文字分であえて切っています)

配列[4]:文書ID

配列[5]:リッチテキストの値

 

50行目から54行目:集めたリストをただ表示するのは芸がないので、

スコアの多い順に並び変えています。

 

3)続いて、繰り返しコントロール部分の設定を行います。

反復>JavaScriptを選択して「viewScope.list」と入力します。

オプション>繰り返し限度を100としておきます(仮です)

オプション>コレクション名を「viewEntry」とします。

 

 

4)最後に繰り返しコントロールの中にある計算結果フィールドコントロールの設定です。

値 > JavaScript > JavaScript(サーバーサイド)に以下を記述します。

 

viewEntry[0]+"★"+viewEntry[1]+"★"+viewEntry[2]+"★"+viewEntry[3]+"★"+viewEntry[4]+"★"+viewEntry[5]

 

※★は区切り位置がわかりやすいようにワザと入れていますてへぺろ

 

以上で準備完了です!!

 

早速プレビューして確認してみましょう!!!!

フィールドに検索したい値を入力して[検索]をクリックします!

 

ほら、この通り出てきましたねおねがい

 

配列[0]:スコア★配列[1]:DBファイル名★配列[2]:DBタイトル★配列[3]:Twitterアカウント5文字分★配列[4]:文書ID★配列[5]:リッチテキストの値

上記のようになっているのわかりますか?

 

検索文言を変更して再度[検索]をクリックしますおねがいおねがい

スコアの降順に並んでいるのがわかりますでしょうか??

 

検索文言を入力して、ヒットした文書データを取得することに成功しました。

次回は複数DBを検索して結果が表示されるようにしていきたいと思います。

 

 

では、今日はこの辺で・・・・

 

 

頑張れ!サッカー日本代表!!サッカー

 

AD