Rabbit Slide Show

Redmine検索の未来像

2019-11-02

Description

Redmineの検索はどうなるといいだろう!

Text

Page: 1

Redmine検索の
未来像
須藤功平
株式会社クリアコード
redmine.tokyo第17回
2019-11-02
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 2

Redmine検索の未来
全文検索プラグイン
https://github.com/clear-code/redmine_full_text_search
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 3

従来の検索システム
SQLの標準機能で実現
比較条件+LIKE
例:
プロジェクト絞り込み:等価条件
コメント検索:LIKE
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 4

未来の検索システム
全文検索エンジンで実現
全文検索だけでなく比較条件もすべて
例:
プロジェクト絞り込み:等価条件
コメント検索:全文検索
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 5

従来の検索システムの課題
速度とソート
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 6

速度
コメント増加→検索時間増加
検索への期待
すばやく必要な情報を見つけたい
遅いと期待に応えられない
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 7

ソート
更新時刻のみ
検索への期待
すばやく必要な情報を見つけたい
最新の情報≠必要な情報
必要な順にソートしないと
期待に応えられない
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 8

未来の検索システム
速度
コメント増加→検索時間超微増
すばやく必要な情報を見つけられる
ソート
更新時刻+適合度
すばやく必要な情報を見つけられる
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 9

未来の検索システムの改善点
高速さと高精度
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 10

未来の検索システムのさらなる改善点
検索対象を追加
クリックで絞り込めるUI
表現の揺らぎに対応
定量的な検索機能の評価基盤
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 11

検索対象を追加
メタデータ
ステータス・トラッカー・ユーザー・…
添付ファイル・リポジトリー内のファイル
PDF・オフィス文書からもテキスト抽出
アーカイブも展開して再帰的にテキスト抽出
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 12

メタデータで検索
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 13

クリックで絞り込めるUI
ユーザー:なにを探しているかわからない
検索システムとの対話の中で見つける
対話:検索結果+次のクエリーを提案
ユーザーと検索システムが一緒に答えを探す
提案されたクエリーで絞り込み
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 14

表現の揺らぎに対応
表現の揺らぎ:
同義語:ネジとビス
異表記:ネジと螺子
クエリー拡張:
検索前に自動でクエリーを拡張
ネジ→ネジ OR ビス OR 螺子
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 15

クエリー拡張:Groonga→Groonga OR PGroonga
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 16

表現の揺らぎのメンテナンス
手動はツライ。。。
誰がやるの?
いつやるの?
自動化しないと陳腐化
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 17

未来の検索システムでのメンテナンス
自動化中
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 18

自動化方法
既知の情報を収集
例:Wikipediaのリダイレクト情報
例:NEologdの情報
Redmine内の情報から学習
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 19

既知の情報を収集
メリット:楽
スクリプトを準備する予定
デメリット:
一般的な言い回ししか集まらない
ドメイン固有の言い回しがない
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 20

Redmine内の情報から学習
メリット:
ドメイン固有の言い回しに対応可
デメリット:
難しい
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 21

学習:検証中
1. テキスト情報を抽出
全文検索用に抽出した情報を活用
自然言語っぽいものだけ選別して行に分割
2. SentencePieceでトークナイズ
MeCabだとドメイン固有の未知語に対応できない
3. BERT/fastTextでベクトル化
4. 類似単語を揺らぎとして抽出
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 22

学習:現状(伸びしろしかない)
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 23

定量的な検索機能の評価基盤
定性的な評価(例:インタビュー)
体感で速くなった!
体感で見つかりやすくなった!
定量的な評価(例:ログ分析)
利用ユーザーが○人
ユーザーが必要な情報を取得できた割合が○%
ログを追加し定量的な評価が可能に
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 24

定量的な評価基盤:現状
Railsのログに記録
スクリプトでログを解析してレポート
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 25

定量的な評価基盤:未来
RDBMSに記録
管理画面でリアルタイムにレポート
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 26

未来の検索システムの
近い未来

Page: 27

さらなる高速化
常に1秒未満を目指す
検索システムとの対話ストレスをなくす
インクリメンタル検索も現実的に
パカパカしてうるさいかもしれない
Googleはこの機能を捨てた
定量的な評価をしながら取捨選択する予定
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 28

入力補完
入力中にクエリーを提案
Googleはこの機能にシフトした
課題:良質な補完候補の用意
Wikipediaなど一般的なデータを活用
Redmine内のデータから機械学習で生成
極秘データの扱いに注意が必要
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 29

テキスト抽出可能ファイルの追加
.msg(Outlookのファイル)
SVGファイル
CADファイル
...
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 30

Redmine検索の未来
全文検索プラグイン
https://github.com/clear-code/redmine_full_text_search
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Page: 31

一緒に未来を作ろう!
仕事として一緒に開発
あなた:お金と要望とデータを提供
クリアコード:開発・コンサルティング
成果は自由なソフトウェアとして公開
連絡先
https://www.clear-code.com/contact/
Redmine検索の 未来像
Powered by Rabbit 3.0.1

Other slides

Apache Arrow Apache Arrow
2018-12-08
Apache Arrow Apache Arrow
2018-11-17
Apache Arrow Apache Arrow
2017-06-13
Apache Arrow Apache Arrow
2017-05-28
Mroonga! Mroonga!
2015-10-30