よく活用された Redmine 情報の宝庫問題解決の経緯 Wiki に整理したノウハウ

Similar documents
全文検索 Google Bing が提供している機能

Apache Arrow 須藤功平株式会社クリアコード RubyData Tokyo Meetup Apache Arrow Powered by Rabbit 2.2.2

はじめに 本ドキュメントは Redmine を使用して稼働する定量的プロジェクト管理ツール ( 以下 IPF と略します ) のヘルプです IPF の操作に関わる機能を解説しており Redmine 及び構成管理ツール (Subversion Git) の標準機能については 本ヘルプの記載対象外として

DiscussNetPremium操作説明書

PHP で PostgreSQL と PGroonga を使って高速日本語全文検索! 須藤功平 クリアコード 第 115 回 PHP 東京 PHP で PostgreSQL と PGroonga を使って高速日本語全文検索! Powered by Rabbit 2.

Maruzen ebook Library クイック リファレンス ガイド 丸善が提供する学術書籍の電子ブックコレクションです 閲覧画面も広いので見やすく 操作も簡単ですので ぜひ 研究 学習にご活用ください 本文閲覧を終えたら ボタンをクリックしてください 接続方法

サイボウズ Office 10「個人フォルダ」

Windows8.1基礎 ファイル管理

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

PowerPoint プレゼンテーション

Sylpheed とは オープンソースのメールソフト ライセンスは GPL+LGPL 高速 軽量 高機能 高い操作性 高い信頼性 導入が容易 マルチプラットフォーム Windows, Linux, etc. 多言語対応 ( 約 30 ヶ国語 )

AFP FORUM

Microsoft Office Visioによる 施設管理について

改訂履歴 Ver 日付履歴 新規作成 5 月末の機能追加として キーワード検索部分およびアドレス直接入力時の入力補完機能 検索結果対象にメーリングリストを追加 メールアドレスとの区別の為にメーリングリストを青字表示 カレンダーアイコン押下時の挙動修正 Gmail 内のアド

Maser - User Operation Manual

Joi-Tab 端末管理システム最終更新日 2015 年 3 月 13 日

Microsoft Word - 06.doc

初期設定とログイン方法 タブレット版 ipad または Android タブレットをご利用の方は 専用アプリを使って読書することができます 以下のリンクからアクセスするか アプリストアで BookLooper と検索してアプリをインストールしてください <ipad>

目次 1 1 選考結果入力および 選考結果を応募者にメール送信する 1 選考結果の入力 P.5 2 選考結果の送信 P.8 3 日程調整メールの送信 P.10 2 メッセージを送信 受信する 1 応募者からのメッセージを受信する P.14 2 メールの送信履歴を確認する P.17 3 メッセージ機能

出力ログ管理ソリューションカタログ

(4) 文字サイズ ( フォントサイズ ブロック ) デザイン管理 > レスポンシブ Web デザイン > レイアウト設定 ヘッダー部 に配置しています (5) カゴの中 ( ヘッダー カゴの中 ブロック ) デザイン管理 > レスポンシブ Web デザイン > レイアウト設定 ヘッダー部 に配置し

スライド 1

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

スライド 1

サイボウズ Office 9 掲示板マニュアル

<4D F736F F F696E74202D CB4967B2D8F6F93FC8AC48E8B8D9E F8E9E8C9F8DF5817A D C882F182C282A C520837D836A B2E707074>

ファイル管理

< 目次 > 1. パソコンの画面構成... 3 連絡先一覧... 3 連絡先一覧の切り替え... 4 連絡先... 6 付帯情報... 7 関連... 7 代行入力... 8 CRM... 8 グローバルメニュー SkyDesk Cards R for ios 画面構成... 12

06.7 作成.EndNote Basic について -.EndNote Basic とは? EndNote は文献情報を保存 管理するツールです また 保存した文献情報をもとに文献リストを簡単に作成することができます デスクトップ版と EndNote Basic と呼ばれる Web 版があり 信州

プロジェクト管理でkintone

目次 3 14P Wordpressテンプレートの設定方法 15P 17P livedoorテンプレートの設定方法 18P 21P FC2テンプレートの設定方法

DataWare-NETご利用ガイド

PowerPoint プレゼンテーション

オープンオフィス 3 入門ガイド - Calc: データを整理する このドキュメントは クリエイティブ コモンズに表示される帰属 日本のライセンスのもと提供しています このドキュメントの Web 版を OpenOffice.org 日本ユーザー会のドキュメントで公開しています http:

掲示板の閲覧 掲示板の閲覧 登録権または参照権のある掲示板グループの掲示版を閲覧することができます 各利用者の権限は 管理者によって設定されます 掲示板を閲覧する 1 掲示板画面を表示し 閲覧する掲示が含まれている掲示板グループ 掲示板の順にクリックします 掲示板画面の表示方法 ポータル画面の画面説

Jupyter Notebook を活用したプログラムライブラリ構築の検討 吹谷芳博 1, 藤澤正樹 1 ( 1 あすか製薬株式会社 ) Examination of the program library construction using Jupyter Notebook ASKA Pharm

目次 新規ユーザー登録... 3 初期設定... 6 (1) 特定商取引法に基づくページのURLを設定する... 7 (2) コンバージョン測定タグを設定する... 7 サイトを作成してみよう

1.はじめに

Microsoft Word - 4. 画面説明_ver docx

Microsoft Word - Outlook Web Access _IE7_ Scenario.doc

EndNote X7 クイックレファレンスガイド

POWER EGG2.0 Ver2.6 ユーザーズマニュアル ファイル管理編

目 次 1. はじめに ソフトの起動と終了 環境設定 発助 SMS ファイルの操作 電話番号設定 運用条件 回線情報 SMS 送信の開始と停止 ファイル出力... 16

サイボウズ Office 7 ファイル管理マニュアル

Microsoft Word - CygwinでPython.docx

システム管理マニュアル

IBM API Connect 開発者ポータル構成ガイド 1章

Microsoft Word - H1369 インターネット1(IE版)(T)

32-2 一般ユーザー用 : ドキュメント カテゴリ MAP での選択または 抽出条件設定画面にて 抽出 をクリックする事で 該当するデータが一覧で表示されます 結果一覧画面 表示項目説明カテゴリカテゴリ名を表示します をクリックすると カテゴリ表示順昇順に並べ替えが行えます をクリックすると カテ

eService

Microsoft PowerPoint - Tutorial_2_upd.ppt

PowerPoint プレゼンテーション

SULMS簡単操作マニュアル

Adobe ユーザー申請システム Version 1.0 for 北海道大学利用者向け取扱説明書 第 1.1 版 平成 26 年 11 月 06 日

Microsoft PowerPoint - Teams QS.pptx

コンテンツ作成基本編

グローバルナビ ゼネカタ WEB のグローバルナビ (=どのページに遷移しても上部に共通して表示されているメニュー群) の機能は 主に下記のとおりです なお スマートフォンの場合はグローバルナビの形状が異なりますが ほぼ同等の機能を上部およびサイドメニューに用意しています グローバルナビの機能 (P

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

17-2 一般ユーザー用 : 回覧板 回覧内容を確認する 新着表示一覧より タイトル をクリックして下さい 回覧内容確認画面が開きます 回覧内容確認画面 1 入力項目 説明 文字形式 桁数 必須 確認 OK NOの選択と コメントを入力して下さい 全角 指定なし この項目は 回覧作成時オプション項目

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

Installation Guide for Linux

Transcription:

全文検索で Redmine をさらに活用! 須藤功平 株式会社クリアコード Redmine 大阪第 17 回勉強会 2017-08-26

よく活用された Redmine 情報の宝庫問題解決の経緯 Wiki に整理したノウハウ

さらに活用するために 必要なときに 必要な情報に 素早くアクセスしたい!

活用方法 : 検索!

活用の壁 よく活用された Redmine 大量の情報 ( ただし玉石混合 ) さらに活用するための課題 大量 必要な情報を見つけにくい大量 探す時間が増える

課題例 1: 検索ノイズが多い これ以外全部ノイズ

課題例 2: 検索が遅い 本当に大量だとね! これくらいだと遅くない チケット数 :4049 コメント数 :41264 Wiki ページ数 :1081 1 秒以内に返ってくるキャッシュが効く :0.1s くらいキャッシュが効かない :0.7s くらい

解決策 Groonga で Redmine を高速 高精度全文検索

解決例 1: 検索ノイズがない 全部それっぽい!

検索ノイズ? 上位 N 件でがっかりする? がっかり ノイズ多いユーザーは上位 N 件しか確認しない Groongaはスコアを調整してソート 件数は関係ない 実はこの例ではヒット件数は同じ

解決例 2: 検索が速い これくらいだと誤差 チケット数 :4049 コメント数 :41264 Wiki ページ数 :1081 参考 : 既存 ( キャッシュあり ) と Groonga( キャッシュなし ) が同じくらい

200 万チケットのケース https://twitter.com/akahane92/status/733832496945594368

ここまでのまとめ Redmine をさらに活用したい! 素早く必要な情報にアクセス! 検索をがんばらないと! Groonga で全文検索! 検索ノイズが少ない! 速い!

ここからの話 導入したくなる情報を紹介

インストール :RDBMS 対応 RDBMS MySQL も PostgreSQL も! RDBMS に Groonga 対応プラグインをインストールプラグイン : 別途サービス管理不要 運用コスト増加なし MySQL:Mroonga PostgreSQL:PGroonga

インストール :Mroonga http://mroonga.org/ja/docs/install.html パッケージで簡単インストール 対応プラットフォーム Debian GNU/Linux, Ubuntu CentOS Fedora macos Windows

インストール :PGroonga https://pgroonga.github.io/ja/install/ パッケージで簡単インストール 対応プラットフォーム Debian GNU/Linux, Ubuntu CentOS Fedora macos Windows

インストール : プラグイン % cd redmine % git clone \ https://github.com/okkez/redmine_full_text_search.git \ plugins/full_text_search % bin/rake redmine:plugins RAILS_ENV=production 再起動で完了!

高度な検索 1:AND/OR/NOT キーワード単位での AND/OR/NOT 従来 :AND/OR のみ 従来 : キーワード全体で切り替え 例 : (Groonga OR Mroonga) -PostgreSQL Groonga または Mroonga を含むが PostgreSQL は含まない

高度な検索 2: 並び順の変更 ソート対象 : スコア 更新時刻 従来 : 更新時刻のみ ソート順 : 昇順 降順 従来 : 降順のみ

並び順の変更 UI

ここまでのまとめ 簡単にインストールできる 運用も楽 AND/OR/NOT を使える 絞り込みに便利 並び順をカスタマイズできる スコアと更新時刻で十分

2017 年 5 月以降の話 redmine.tokyo 第 12 回勉強会 2017 年 5 月ノイズが少なくて高速 その後 高速化類似 issue 検索対応

旧 新 高速化 LIKE 検索をGroongaに置き換え他の条件はそのまま すべてGroongaで検索高速 柔軟 高度な検索をサポート

旧 新 データの扱い 正規化してデータを保存検索時に複数回のSELECT 1つのテーブルにデータを保存 1 回のSELECTで検索 ( 速い )

柔軟 ドリルダウンで対象を分別 チケットn 件 Wikiページn 件とか標準でもあるやつ ハイライト スニペット 標準よりもいい感じ 類似文書検索

類似文書検索 活用例 類似 issue 検索 実装着手 類似 Wiki 検索 未実装

類似 issue 検索

類似 issue: ユースケース 新しい問題が発生! あれ? どこかで見たような プラグイン : この issue 似ていませんか? 問題の早期解決!

類似 issue 検索 : 現実装 issue 閲覧時 自動で類似 issue を提示 Groonga 内のデータを活用 テキストデータで類似文書検索 精度 まぁまぁ

ここからの話 今後の野望

類似 issue 検索精度向上メタデータを活用 手動設定の関連 issue 情報使用 属性情報使用 カテゴリとかトラッカーとか 同一プロジェクトに限定する Wiki も対象に加える

類似 issue 検索精度向上機械学習技術を活用 字面でなく意味で類似文書検索 例 : メールの thread とプログラムの thread は違う 例 :Mroonga で MySQL も類似度向上 回答の自動生成 RNN を用いた機械翻訳とか 類似 issue の結論を探さなくてよい

データ活用に向けて GroongaにPython 組込 Rubyでデータ処理 Red Data Tools Apache Arrow 次世代データ交換フォーマットコミッターになった!

類似 issue 共同開発組織募集 精度向上にはデータが不可欠 データを持っていそうな組織 大量ユーザー 長期間運用組織 マネージドサービス提供組織 Redmine 内データを活用したい組織はぜひ!

添付ファイル内全文検索 現状 : ファイル名と説明 テキスト抽出できれば検索可能 テキスト抽出ツール例 :ChupaText Groonga プロジェクトのテキスト抽出ツール

添付ファイル内全文検索実装案 テキスト抽出部分をプラグインできるようにすれば Redmine 本体に入れられるのでは!? ChupaText より Apache Tika を使いたい人もいそう 検索は LIKE でよい Groonga プラグインを入れたら高速になる でよい だれかチャレンジしない?

検索ボックス 入力補完 入力に応じてキーワードを随時提示 ヒットするもののみ 各種入力欄 ( タイトルなど ) 入力に応じて既存内容を随時提示ローマ字でインクリメンタルサーチ

入力補完 : ユースケース 検索ボックス 自然と適切な検索に誘導! 例 :typoを防ぐ 表記揺れを吸収 各種入力欄 自然と表記を統一! 検索しやすい 理解しやすい例 :typoを防ぐ 表記揺れを吸収

入力補完 : 実装 Groonga 内のデータを活用 どのくらいヒットするキーワード? ログも活用 : 検索頻度は? メタデータも活用 : プロジェクト トラッカー毎に文脈をわける 開発協力者を募集 実装 データ提供 発注など

同義語展開 表記揺れを吸収 例 : 打ち合わせ 打合せ 吸収 : 打ち合わせ OR 打合せ 同義語は管理が大変! 文脈で異なる! 増減する! 同義語管理を支援例 : 同義語候補を自動生成

同義語展開 : ユースケース 検索ボックス 欲しい情報にたどり着ける! 表記揺れによる未発見を解消 同義語管理のコスト削減 Redmine 内のデータをより低コストで有効活用!

同義語展開 : 実装 Groonga の組み込み機能を活用 高速に同義語展開が可能 同義語候補を機械学習 Groonga 内のデータを活用 開発協力者を募集 実装 データ提供 発注など

スマートナビ ( 仮 ) 言わなくても欲しいものを提示 例 : 駅の近くでスマホを見る その駅の時刻表を自動で表示 ポイント : ユーザーは 駅名時刻表 で明示的に検索していない!

スマートナビ : ユースケース.oO( 打ち合わせのアジェンダを Wiki にまとめておこう ) Redmine: ホーム画面に該当 Wiki ページのリンクを表示

スマートナビ : 実装 行動履歴から知識を学習 打ち合わせ前にいつも Wiki を更新 内容から事実を収集 Wiki ページ内のテキスト 参加者 : から抽出 開発協力者を募集 実装 データ提供 発注など

ここまでのまとめ このプラグインの現状 Redmine の不便を解消 ( マイナスを少しプラスに ) このプラグインの今後 Redmine をさらに有効活用! ( 少しプラスをすごくプラスに )

ここからの話 Redmine の開発に参加しよう!

開発に参加? Redmine 本体のコードを書くだけじゃない バグレポート テスト issue 対応 ドキュメント作成 宣伝 プラグインを作るだけじゃない 本体と同様 のことも大事な開発

開発の参加例 Groonga プラグイン開発時の知見をフィードバック Defect #21993: サイズ上限が小 Patch #23153: フックを追加 Feature #25198: スコアを表示

敷居が高そう? OSS Gate ワークショップへ参加してみよう OSS 開発に参加 を経験できる (Redmine もプラグインの多くも OSS!) ( もちろんこのプラグインも Groonga も OSS!) https://oss-gate.doorkeeper.jp/

添付ファイル内全文検索を実装したい! 私に相談だ!

まとめ Redmine をさらに活用するなら Groonga プラグインを使おう! Redmine の開発に参加しよう! OSS Gate ワークショップが役立つ 宣伝 : 全文検索のことはクリアコードに相談しよう!