【Confitバージョンアップ情報】公開システムを支える”裏側”の改善

こんにちは、Confit開発担当のあらきです。今回はConfit公開システムのバージョンアップ情報を、2つピックアップしてご紹介します。

Confitのバージョンアップ情報はConfitスタッフブログでも随時お伝えしていますが、どちらかというとUI(ユーザーインタフェース)の情報が中心です。
このブログでは、見た目にはわかりにくい”裏側”も改善してますよ!ということをお伝えしていきます。

検索エンジン(Elasticsearch)バージョンアップ(2017/8)

Confit公開システムの講演検索機能では、Elasticsearchというオープンソースの全文検索エンジンを利用しています(Webのみ)。
このElasticsearchの新しいバージョンが2016年10月末に登場したため、Confit公開システムにも導入しました。今回のバージョンアップによって、検索データ登録・検索処理共に、より高速になりました

Confit公開システムにElasticsearchを導入したのは約2年前で、これにより講演検索に様々な便利な機能が追加されました。
せっかくの機会ですので、いくつかご紹介します。

部分一致検索から形態素解析を利用した検索へ

部分一致検索は、単純に「検索ワードに一致する文字が文章に含まれているか?」で判断するため、検索ノイズを拾いやすいという難点がありました。
例えば「京都」と検索すると「東京都」がヒットしてしまいます(「京都」というワードが含まれているため)。

一方、形態素解析は文章・フレーズを「意味を持つ表現要素の最小単位」に分解して検索する手法です。
形態素解析を利用した検索では、検索ワードと検索対象の双方を意味のある単位で単語に分割して検索するため、検索ノイズが生じにくいという利点があります。
先の例では「東京都」は 「東京」「都」 という単語に分割して検索するため、「京都」と検索しても「東京都」はヒットしません。
形態素解析を利用した検索に変えたことで、検索ノイズを減らし、より条件と関係性が高い結果をヒットさせられるようになりました。

・・・この辺りを正確に説明するととても長くなりそうなので、また別記事で追って説明していこうと思います!参考までに技術評論社の解説記事のリンクを貼っておきます

サジェスト表示

講演検索画面でテキストボックスに文字を入力すると、検索語の候補が表示されます。Google検索などでよく目にするため、今や当たり前のようになった機能ですが、このサジェスト表示もElasticsearchの導入によって実現した機能の一つです。

ファセットナビゲーション

ファセットとは「物事の側面や切り口」という意味で、ファセットナビゲーションとは「こういった切り口で情報を探すのはいかがですか」と提示するナビゲーションのことです。
このナビゲーションがあることによって、自分で検索ワードを入力せずとも簡単に情報を絞りこむことができます。

Confit公開システムでは、アーカイブサイトの講演検索画面にファセットナビゲーションを表示しています。
アーカイブサイトは過去の大会のプログラムや講演情報を横断して検索・閲覧できる機能で、検索でヒットする講演数も多くなるためです。
実際にアーカイブサイトで検索すると、左側に発表者や所属機関の候補を表示していることがわかります。「検索結果がたくさんあるけど、どう絞っていこう?」と思ったらここに提示された候補から絞っていくことができるわけです。

予稿集・冊子用PDFの配信方式をCDN(Contents Delivery Network)に変更(2017/12)

Confit公開システムでは、講演の情報からプログラムを自動で組版する機能があります
ここで作成したWeb公開用や冊子印刷用の予稿集PDFファイルを、CDNで配信するよう改修しました。

CDNとは

CDNとは、ファイルをダウンロード配信するための技術の一つで、コンテンツのオリジナルファイルをクラウドに置き、キャッシュサーバからエンドユーザにコンテンツを配信する技術です。
アプリケーションサーバ外にコンテンツを置くため、アプリケーションサーバへの負荷を減らすことができ、高速にコンテンツを配信できるという利点があります。
詳しくはこちらのブログがわかりやすいです。

なお、Confit公開システムではAWS(Amazon Web Services)が提供するCDNサービスであるAmazon CloudFrontを利用しています。

CDNに変更したことで解決したこと

これまではアプリケーションサーバ上から自動組版したPDFファイルを配信していたため

  • 予稿集のような容量の大きいファイルは表示に時間がかかる
  • PDF表示リクエストがあるとアプリケーションサーバに負荷がかかり、サーバに接続している別のユーザへの応答も遅くなってしまう

という問題がありました。
特にPDF公開直後はサーバの負荷が急激に上がり、つながりにくい状態が発生していました。
CDNでの配信に変えたことによって「PDFの表示やダウンロードが遅い」「公開システムに繋がりにくい」といったことが今後少なくなるはずです!

おわりに

今回は二つに絞って紹介しましたが、これ以外にも目に見えない部分で様々な改善を進めています。
セキュリティ対策なども進めていますので、今後少しずつお伝えしていきます。