Drupalistのみなさんこんにちは。スタジオウミのエンジニアの新田です。 先日、スタジオウミのメンバー7人でDrupalCamp DEN 2019 Nagoyaに参加してきました。

DrupalCamp DEN 2019 Nagoyaの公式ページ

Compass

DrupalCamp DENとは?

日本で行われている最大規模のDrupal勉強会&交流会です。昨年第1回目を羽田で開催、2回目となる今回は名古屋にある廃校舎を改装して作られた「なごのキャンパス」という施設で行われました。全国各地から約60名の方が参加されました。

なごのキャンパス

Preston So氏によるキーノートスピーチ

前回に引き続き今回もデカップルドDrupalの第一人者であるPreston Soさんがキーノートスピーチをしてくださいました。デカップルドCMSやディストリビューテッドCMSの構造やメリットが紹介され、かなり濃い内容でした。キーノートスピーチとその後行われたディスカッションの様子はこちらの動画で見ることができます。

セッション

今回はなごのキャンパス内の2つの会場で15のセッションが行われました。

セッション一覧

セッションの資料一覧

デカップルドといった最先端技術や最新の開発環境についての発表から初心者向けのチュートリアルまで充実した内容でした。

私も以前社内勉強会で発表して好評だったものを加筆修正してプレゼンテーションを行いました。

今回聞いてくださったみなさん、ありがとうございました。 この記事の最後にプレゼンテーションの補足があるのでご興味のある方は読んでいただけると嬉しいです。

アクイア社のDrupal Certificate試験

アクイア社のDrupal認定試験、「アクイア認定サイトビルダ – Drupal 8」の日本語版が実施され、無料で受験することができました。これまで英語版しかなかったので日本人にはなかなかハードルが高かったのですが、今回日本語版が作られたことで受験しやすくなりました。弊社からも大野、小林、山中、宇都宮、鹿嶋の5名が受験させていただき、めでたく全員合格しました。(希望者多数の場合は抽選とのことだったのですが、私は落ちたと勘違いしてすっぽかしてしまいました。ご迷惑おかけしました...)

 アクイア社のDrupal Certificate試験に一発合格したスタジオ・ウミメンバーの写真

最後に

社内の参加者からは以下のような感想が出ました。

  • 名古屋や全国各地から来た方々や、外国人の方々と交流できて楽しかった
  • これまでの Drupal 関連のイベントと比べ、実体験に基づく事象を題材にしているセッションが多く、勉強になった
  • Drupal認定試験が楽しかった
  • Drupalの最新の動向を知ることができて知見が広がった
  • 徐々に日本にDrupalが浸透してきていることを肌で感じることができた

とても充実した一日でした。関係者の皆さん、ありがとうございました。

プレゼンテーションの補足

以下、プレゼンテーション「Drupalの日本語検索」の補足です。

Searchモジュールで形態素解析を挟む方法

プレゼンテーションでSearchモジュールとSearch APIは基本的にN-gram方式でインデックスが行われており、Search APIの場合はSearch APIのプロセッサープラグインを定義することで形態素解析の処理を挟むことができるとお話ししました。 コアのSearchモジュールでは形態素解析はできないのか?と気になった方もいらっしゃるのではないかと思うのですが、Searchモジュールでもhook_search_preprocessというフックを使えばインデックス前・検索前の文字列を加工することができます。弊社でもhook_search_preprocessを使ってMeCabによる形態素解析機能を組み込んだ事例があります。

インデックスできる最小文字数について

SearchモジュールやSearch APIモジュールでは設定画面で何文字ずつインデックスするかを設定することができます。(画像はSearchモジュールの設定画面です。) この文字数についてですが、形態素解析を使う場合は「水」「山」のような単語をインデックスできるように一文字にするのがベターです。 ですが、N-gramを使う場合は2文字以上にすることを強くおすすめします。 なぜかというと、1文字ずつインデックスすると画像のようなことが起きるからです。 「かに」と検索したのに「昔むかしあるところに」がヒットしてしまうと困りますね。 通常N-gramの検索では「トークン同士が元の文章で繋がっていたか」ということも考慮するのでこのようなことは起きないのですが、DrupalのSeachモジュールは現時点ではそこまで対応していません(Search APIはカスタマイズによっては可能かもしれないですが現時点で対応してるコントリビュートモジュールはなさそうです。)2文字以上にするとこういうことが起こる確率がかなり減るので、できるだけ2文字以上にしましょう。