ガルーンポータル活用Tips #8「FAQを検索できるポータル」
はじめに
中堅・大規模組織向けグループウェア「サイボウズGaroon」のポータル活用企画第8弾。
今回はGaroonのHTMLポートレットとkintoneを活用し、FAQを効率よく検索できるポータルを作成します。
kintoneの強みは、さまざまなデータを蓄積し、関係者と共有できる点です。
しかし、情報が増えるにつれて、目的の情報を迅速に見つけられないことがあります。
そんなとき、Garoonのポータルからkintoneアプリに蓄積されたマニュアルなどを簡単に検索できれば、ユーザーの利便性向上が期待できます。
この記事に紹介される内容は、Cybozu Days 2023の次のセッションで紹介されたシダックス社の事例の一部です。
発表資料もしくは掲載記事を併せて確認しておくと、よりイメージしやすくなります。
『ポータル管理をもっと楽に!クラウド版Garoonで実現する情シスのためのおてがる管理術』
こんなときに便利です
- 大量の情報から必要なものをすばやく検索したい。
- 部分一致で検索したい。
kintoneには、「部分検索ができない」などの制限があります。
詳細は次のヘルプを参照してください。
検索したいデータがヒットしません - 同義語や表記揺れも含めて検索したい。
たとえば、アプリに「パソコン」と「PC」といった用語が混在している場合、通常は「パソコン」というキーワードで検索しても、「PC」を含むレコードがヒットしません。
なんと今回紹介するサンプルプログラムでは「PC」もヒットします。
完成イメージ
次の動画のように、GaroonのポータルにFAQ検索パーツが配置されます。
検索窓にキーワードを入力すると、インクリメンタルサーチや部分一致検索に加え、同義語や表記揺れの検索ができます。
検索結果のリンクをクリックすると、該当ページに遷移します。
システム構成
当記事のサンプルコードのライセンス
後述に掲載されている「Garoonポートレットkintone連携プログラム」(以下、本件著作物といいます)は、シダックス株式会社より提供されたものです。
本件著作物をご利用いただくことで、利用者は次のすべての事項に同意したものとみなされます。
- 自社が契約する環境に対して導入し自己使用することを目的とする場合に限り、本件著作物の複製(ダウンロードを含む)、改変、翻訳、翻案を許諾します。
- 本件著作物の取得者は、有償無償を問わず、本件著作物および本件著作物の二次的著作物について第三者に提供(頒布、公衆送信、送信化、貸与、譲渡、再使用許諾等を含みます)してはなりません。
- 本件著作物は現状有姿で、何らの保証もなく提供されます。
- 作者および著作権者は、本件著作物に起因して生じる一切の損害について何らの責任も負わないものとします。
- 作者および著作権者は、本件著作物の利用方法に関するサポートは行いません。
kintoneの設定
Garoonのポータルからデータを参照させるためのkintoneアプリを作成していきます。
作成するアプリは、システム構成図に示した「FAQキーワード集」と「FAQリンク集」の2つです。
以下のリンク先から「Garoonポートレットkintone連携プログラム」をダウンロードして解凍します。
Garoonポートレットkintone連携プログラム
ダウンロードする前に、必ず「当記事のサンプルコードのライセンス」をお読みいただき、内容に同意のうえ利用してください。
解凍したファイル中のキーワード集 テンプレート.zip
とリンク集 テンプレート.zip
はアプリのテンプレートです。
それらを利用してアプリを作成します。
作成方法は次のヘルプを参考してください。
テンプレートファイルからアプリを作成する
作成したアプリのアプリIDは、のちほど使うので、メモしておきましょう。
たとえば、アプリのURLがhttps://sample.cybozu.com/k/100/
の場合、アプリIDは100
になります。
FAQリンク集アプリの説明
フィールド名 | 説明 |
---|---|
表示テキスト | 検索結果に表示されるリンクのテキストを指定します。 |
検索用のほかのテキスト | 他のキーワードを設定します。 例: 表示テキスト に「会社携帯をなくした」、検索用のほかのテキス に「会社携帯を紛失した」を入力すると、どちらのキーワードでも同じレコードが検索結果に表示されます。 |
リンク | 検索結果で表示されるリンク先のページです。 例:「会社携帯をなくしたときの対処方法」を記載しているレコードのリンク |
表示する組織 | 指定された組織だけが検索でヒットします。 |
表示しない組織 | 指定された組織からの検索ではヒットしません。 |
FAQキーワードアプリの説明
フィールド名 | 説明 |
---|---|
正式名称 | 正式に使用される用語を指定します。 |
ほかの表現 | 略語や同義語などを指定します。 例: 正式名称 が「パソコン」で、ほかの表現 が「PC」とした場合、「PCを借りたい」で検索すると、システム内部では「パソコンを借りたい」も同時に検索されます。 |
Garoonの設定
次は、GaroonのHTMLポートレットを利用して、検索機能を実装してきます。
HTMLポートレットで使用するファイルの準備
まずは、HTMLポートレットで使用するファイルを準備しておきます。
先ほど解凍したファイルの中のindex.html、garoon-faq.js、garoon-faq.css、garoon-faq-fix-layout.cssを使用します。
それぞれの用途は以下のとおりです。
ファイル名 | 必須 | 説明 |
---|---|---|
index.html | 必須 | 検索UIを作成するためのHTMLファイルです。 |
garoon-faq.js | 必須 | 検索を実行するJavaScriptファイルです。 |
garoon-faq.css | 必須 | 検索ポートレット内のデザインを実装するためのCSSファイルです。 |
garoon-faq-fix-layout.css | 状況によっては必要 | 検索中に画面全体のレイアウトが動いてしまう場合に使用します。 このファイルはGaroon全体のスタイルを変更するため、他の部分で問題が起きる可能性があることに注意してください。 |
JavaScriptファイルの編集
garoon-faq.js
をテキストエディタで開き、次の項目を編集します。
「FAQリンク集アプリのアプリID」と「FAQキーワード集アプリのアプリID」はそれぞれ先ほど作成したkintoneアプリのアプリIDで書き換えてください。
|
|
その他設定可能な項目
garoon-faq.js
の冒頭部分で設定可能なリストです。
必要に応じて値を変更してください。
変数名 | 初期値 | 説明 |
---|---|---|
NUM_DEFAULT_LINKS | 5 |
検索クエリを入れていないときに表示されるリンクの数です。 |
NUM_MAX_LINKS | 20 |
表示されるリンクの最大数です。 |
MIN_SCORE | 0.5 |
検索結果に表示するかどうかを決める一致率です。 0から1の範囲で指定します。 |
LONG_TTL | 3*24*60*60*1000 |
ページを開いたとき、キャッシュが以下の期間よりも古ければ最新情報を取りにいきます。 初期値は 3*24*60*60*1000 (3日)です。 |
SHORT_TTL | 5*60*1000 |
検索ボックスにフォーカスを当てたとき、キャッシュが以下の期間よりも古ければ最新情報を取りにいきます。 初期値は 5*60*1000 (5分)です。 |
ELEMENT_ID | 'shidax-garoon-faq' |
値を変更しないでください。 |
FAQポートレットの作成
以下の手順にしたがってポートレットを作成します。
- 「Garronシステム管理」>「各アプリケーションの管理」>「ポータル」から「HTMLポートレット」を開きます。
- [HTMLポートレットを追加する]をクリックします。
- 次の項目を入力します。
- ポートレット名
名前は任意ですが、今回は「FAQポータル」とします。 - Myポータル
「Myポータルでの利用を許可する」にチェックを入れます。 - ポートレットの内容
index.html
ファイルの中身を貼り付けます。
- ポートレット名
- [追加する]ボタンをクリックします。
JavaScript/CSSの適用
- 「HTMLポートレットの詳細」画面で、「JavaScript / CSSによるカスタマイズ」をクリックします。
- 次の項目を設定します。
- カスタマイズ
「適用する」を選択します。 - JavaScriptカスタマイズ
「ファイルの追加」からgaroon-faq.js
を追加します。 - CSSカスタマイズ
「ファイルの追加」からgaroon-faq.css
を追加します。
必要に応じて、garoon-faq-fix-layout.css
を追加してください。
- カスタマイズ
- [設定する]をクリックします。
cssは最初にgaroon-faq.css
のみを指定して動作確認してください。
もし、検索中に画面全体のレイアウトが動いてしまう場合は、garoon-faq-fix-layout.css
ファイルをcssに追加してください。
なお、garoon-faq-fix-layout.css
はGaroon全体のスタイルを変更するため、検索ポートレット以外の部分でも表示に問題がないことを確認してください。
動作確認
テストデータの作成
kintoneアプリに次のレコードを追加します。
FAQ リンク集
レコード | 表示テキスト | 検索用のほかのテキスト(改行区切り) | リンク | 表示する組織 |
---|---|---|---|---|
1 | cybozu_developer_network | cydn | https://cybozu.dev/ja/ | [自分が所属する組織] |
2 | kintone | キントーン | https://kintone.cybozu.co.jp/ | [自分が所属する組織] |
3 | Garoon | ガルーン | https://garoon.cybozu.co.jp/ | [自分が所属する組織] |
4 | Mailwise | メールワイズ | https://mailwise.cybozu.co.jp/ | [自分が所属する組織] |
5 | サイボウズコミュニティ | community | https://community.cybozu.dev/ | [自分が所属する組織] |
FAQ キーワード集
レコード | 正式名称 | ほかの表現(改行区切り) |
---|---|---|
1 | cybozu | サイボウズ |
検索の実行
以下のリストに沿って検索結果を検証します。
入力文字 | 検索結果 | 備考 |
---|---|---|
network | cybozu_developer_network | 部分一致検索が可能であるため。 |
cydn | cybozu_developer_network | FAQ リンク集アプリでcybozu developer network の検索用のほかのテキスト(改行区切り) にcydn が登録されているため。 |
サイボウズ | cybozu_developer_network | FAQ キーワード集アプリでcybozu のほかの表現(改行区切り) にサイボウズ を登録しており、内部ではサイボウズ とcybozu の両方が同時に検索されるため。 |
saibozu | cybozu_developer_network | 表記揺れを含めて検索できるため。 |
正常に検索出来ればOKです。
おわりに
以上、Garoonとkintoneを使ってFAQを簡単に検索できるカスタマイズを紹介しました。
ぜひ「誰でも使いやすい社内ポータル」を目指して試してみてください。
関連ページ
このTipsは、2024年10月版のGaroonとkintoneで動作を確認しています。