Summary
QiiSearch(キーサーチ)とは、QiitaTeam内の記事をSlackから検索できるBotです。
弊社では業務に関するナレッジをQiitaTeamに共有しており、初めはその情報に簡単にアクセスすることを目的に社内ツールとして開発されました。
現在はSlackAppとして公開されているためQiitaTeamとSlackを使っている組織ではすぐに導入可能です。
@Qiisearch <検索ワード>とメッセージするだけで、Botが条件に一致する記事を検索してくれます。
![](https://storage.googleapis.com/dott-official-site.appspot.com/uploads/1/2020/07/Screen-Shot-2020-07-10-at-11.00.16.png)
実際の使用例は以下の記事にまとまっております。
背景
弊社は各プロジェクトで得た技術的知見をQiitaTeamの記事にまとめて共有しているので、気になる技術について後から検索することが可能です。
ただ、毎回記事を検索するためにQiitaTeamをブラウザで開いて、検索フォームにキーワードを入力して…という工程を毎回行いますが、正直なところ面倒な時があります。
ならば、常に起動しているSlack上で記事の検索を完結できたら画面の切り替えを最小限にでき楽になるのでは?と思い、QiiSearchを作成してみました。
Technology
仕組み
システムの全体のイメージはこちら。
![](https://storage.googleapis.com/dott-official-site.appspot.com/uploads/1/2020/07/original.png)
言語
![](https://storage.googleapis.com/dott-official-site.appspot.com/uploads/1/2020/07/original-3-e1594349354168-300x85.png)
Slackからのイベントを受け取るための処理をCloudFunctions/Goで実装し、処理を行っています。
![](https://storage.googleapis.com/dott-official-site.appspot.com/uploads/1/2020/07/original-4-e1594349216647-300x74.png)
Ktorというフレームワークを使い、GAE(Google App Engine)のRestAPIをKotlinで実装。CloudFunctions/Goからリクエストを受け取り、Qiita記事の検索・結果の返却などを行っています。
Go言語のみでシステムを完結させることも可能でしたが、今回はGoとKotlinの両言語の勉強も兼ねていたためこの構成で進めていきました。
Product
![](https://storage.googleapis.com/dott-official-site.appspot.com/uploads/1/2020/07/Screen-Shot-2020-07-08-at-23.44.01-1024x465.png)