SlideShare a Scribd company logo
Redmine検索の 未来像 Powered by Rabbit 3.0.0
Redmine検索の
未来像
須藤功平 株式会社クリアコード
redmine.tokyo第17回
2019-11-02
Redmine検索の 未来像 Powered by Rabbit 3.0.0
Redmine検索の未来
全文検索プラグインhttps://github.com/clear-code/redmine_full_text_search
Redmine検索の 未来像 Powered by Rabbit 3.0.0
従来の検索システム
SQLの標準機能で実現
比較条件+LIKE
例:
プロジェクト絞り込み:等価条件
コメント検索:LIKE
Redmine検索の 未来像 Powered by Rabbit 3.0.0
未来の検索システム
全文検索エンジンで実現
全文検索だけでなく比較条件もすべて
例:
プロジェクト絞り込み:等価条件
コメント検索:全文検索
Redmine検索の 未来像 Powered by Rabbit 3.0.0
従来の検索システムの課題
速度とソート
Redmine検索の 未来像 Powered by Rabbit 3.0.0
速度
コメント増加→検索時間増加
検索への期待
すばやく必要な情報を見つけたい
遅いと期待に応えられない
Redmine検索の 未来像 Powered by Rabbit 3.0.0
ソート
更新時刻のみ
検索への期待
すばやく必要な情報を見つけたい
最新の情報≠必要な情報
必要な順にソートしないと
期待に応えられない
Redmine検索の 未来像 Powered by Rabbit 3.0.0
未来の検索システム
速度
コメント増加→検索時間超微増
すばやく必要な情報を見つけられる
ソート
更新時刻+適合度
すばやく必要な情報を見つけられる
Redmine検索の 未来像 Powered by Rabbit 3.0.0
未来の検索システムの改善点
高速さと高精度
Redmine検索の 未来像 Powered by Rabbit 3.0.0
未来の検索システムのさらなる改善点
検索対象を追加
クリックで絞り込めるUI
表現の揺らぎに対応
定量的な検索機能の評価基盤
Redmine検索の 未来像 Powered by Rabbit 3.0.0
検索対象を追加
メタデータ
ステータス・トラッカー・ユーザー・…
添付ファイル・リポジトリー内のファイル
PDF・オフィス文書からもテキスト抽出
アーカイブも展開して再帰的にテキスト抽出
Redmine検索の 未来像 Powered by Rabbit 3.0.0
メタデータで検索
Redmine検索の 未来像 Powered by Rabbit 3.0.0
クリックで絞り込めるUI
ユーザー:なにを探しているかわからない
検索システムとの対話の中で見つける
対話:検索結果+次のクエリーを提案
ユーザーと検索システムが一緒に答えを探す
提案されたクエリーで絞り込み
Redmine検索の 未来像 Powered by Rabbit 3.0.0
表現の揺らぎに対応
表現の揺らぎ:
同義語:ネジとビス
異表記:ネジと螺子
クエリー拡張:
検索前に自動でクエリーを拡張
ネジ→ネジ OR ビス OR 螺子
Redmine検索の 未来像 Powered by Rabbit 3.0.0
クエリー拡張:Groonga→Groonga OR PGroonga
Redmine検索の 未来像 Powered by Rabbit 3.0.0
表現の揺らぎのメンテナンス
手動はツライ。。。
誰がやるの?
いつやるの?
自動化しないと陳腐化
Redmine検索の 未来像 Powered by Rabbit 3.0.0
未来の検索システムでのメンテナンス
自動化中
Redmine検索の 未来像 Powered by Rabbit 3.0.0
自動化方法
既知の情報を収集
例:Wikipediaのリダイレクト情報
例:NEologdの情報
Redmine内の情報から学習
Redmine検索の 未来像 Powered by Rabbit 3.0.0
既知の情報を収集
メリット:楽
スクリプトを準備する予定
デメリット:
一般的な言い回ししか集まらない
ドメイン固有の言い回しがない
Redmine検索の 未来像 Powered by Rabbit 3.0.0
Redmine内の情報から学習
メリット:
ドメイン固有の言い回しに対応可
デメリット:
難しい
Redmine検索の 未来像 Powered by Rabbit 3.0.0
学習:検証中
テキスト情報を抽出
全文検索用に抽出した情報を活用
自然言語っぽいものだけ選別して行に分割
1.
SentencePieceでトークナイズ
MeCabだとドメイン固有の未知語に対応できない
2.
BERT/fastTextでベクトル化3.
類似単語を揺らぎとして抽出4.
Redmine検索の 未来像 Powered by Rabbit 3.0.0
学習:現状(伸びしろしかない)
Redmine検索の 未来像 Powered by Rabbit 3.0.0
定量的な検索機能の評価基盤
定性的な評価(例:インタビュー)
体感で速くなった!
体感で見つかりやすくなった!
定量的な評価(例:ログ分析)
利用ユーザーが○人
ユーザーが必要な情報を取得できた割合が○%
ログを追加し定量的な評価が可能に
Redmine検索の 未来像 Powered by Rabbit 3.0.0
定量的な評価基盤:現状
Railsのログに記録
スクリプトでログを解析してレポート
Redmine検索の 未来像 Powered by Rabbit 3.0.0
定量的な評価基盤:未来
RDBMSに記録
管理画面でリアルタイムにレポート
未来の検索システムの
近い未来
Redmine検索の 未来像 Powered by Rabbit 3.0.0
さらなる高速化
常に1秒未満を目指す
検索システムとの対話ストレスをなくす
インクリメンタル検索も現実的に
パカパカしてうるさいかもしれない
Googleはこの機能を捨てた
定量的な評価をしながら取捨選択する予定
Redmine検索の 未来像 Powered by Rabbit 3.0.0
入力補完
入力中にクエリーを提案
Googleはこの機能にシフトした
課題:良質な補完候補の用意
Wikipediaなど一般的なデータを活用
Redmine内のデータから機械学習で生成
極秘データの扱いに注意が必要
Redmine検索の 未来像 Powered by Rabbit 3.0.0
テキスト抽出可能ファイルの追加
.msg(Outlookのファイル)
SVGファイル
CADファイル
...
Redmine検索の 未来像 Powered by Rabbit 3.0.0
Redmine検索の未来
全文検索プラグインhttps://github.com/clear-code/redmine_full_text_search
Redmine検索の 未来像 Powered by Rabbit 3.0.0
一緒に未来を作ろう!
仕事として一緒に開発
あなた:お金と要望とデータを提供
クリアコード:開発・コンサルティング
成果は自由なソフトウェアとして公開
連絡先
https://www.clear-code.com/contact/

More Related Content

Similar to Redmine検索の未来像

【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
Developers Summit
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
 
AWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイAWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイ
Amazon Web Services Japan
 
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by  丹田 賢インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by  丹田 賢
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
CODE BLUE
 
Long Life Web Performance Optimization
Long Life Web Performance OptimizationLong Life Web Performance Optimization
Long Life Web Performance Optimization
Koji Ishimoto
 

Similar to Redmine検索の未来像 (20)

IBM Blluemix を Pepper とつないでみよう
IBM Blluemix を Pepper とつないでみようIBM Blluemix を Pepper とつないでみよう
IBM Blluemix を Pepper とつないでみよう
 
Edge から Cloud, Beginner から Professional までサポートする Azure AI プラットフォーム
Edge から Cloud, Beginner から Professional までサポートする Azure AI プラットフォームEdge から Cloud, Beginner から Professional までサポートする Azure AI プラットフォーム
Edge から Cloud, Beginner から Professional までサポートする Azure AI プラットフォーム
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
 
クラウドだから手を付けやすい AI への道
クラウドだから手を付けやすい AI への道クラウドだから手を付けやすい AI への道
クラウドだから手を付けやすい AI への道
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
Redmine plugin ハンズオン
Redmine plugin ハンズオンRedmine plugin ハンズオン
Redmine plugin ハンズオン
 
AWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイAWS上でのWebアプリケーションデプロイ
AWS上でのWebアプリケーションデプロイ
 
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift Update20190122 AWS Black Belt Online Seminar Amazon Redshift Update
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
 
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
 
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by  丹田 賢インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by  丹田 賢
インサイドShell:.NETハッキング技術を応用したPowerShell可視性の向上 by 丹田 賢
 
明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure
 
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティングFRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
 
Amazon Game Tech Night #22 AWSで実現するデータレイクとアナリティクス
Amazon Game Tech Night #22 AWSで実現するデータレイクとアナリティクスAmazon Game Tech Night #22 AWSで実現するデータレイクとアナリティクス
Amazon Game Tech Night #22 AWSで実現するデータレイクとアナリティクス
 
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼう
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼうJAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼう
JAWS-UG 初心者支部 #31 監視編 サーバーのモニタリングの基本を学ぼう
 
Long Life Web Performance Optimization
Long Life Web Performance OptimizationLong Life Web Performance Optimization
Long Life Web Performance Optimization
 
接触確認アプリCOCOAの技術解説
接触確認アプリCOCOAの技術解説接触確認アプリCOCOAの技術解説
接触確認アプリCOCOAの技術解説
 
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
 
Firebase, Firestore Extension for Elastic App Search Integration-20220216
Firebase, Firestore Extension for Elastic App Search Integration-20220216Firebase, Firestore Extension for Elastic App Search Integration-20220216
Firebase, Firestore Extension for Elastic App Search Integration-20220216
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 

More from Kouhei Sutou

Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 

More from Kouhei Sutou (20)

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのか
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
 
Apache Arrow 2019
Apache Arrow 2019Apache Arrow 2019
Apache Arrow 2019
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroonga
 
My way with Ruby
My way with RubyMy way with Ruby
My way with Ruby
 
Red Data Tools
Red Data ToolsRed Data Tools
Red Data Tools
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (12)

ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 

Redmine検索の未来像

  • 1. Redmine検索の 未来像 Powered by Rabbit 3.0.0 Redmine検索の 未来像 須藤功平 株式会社クリアコード redmine.tokyo第17回 2019-11-02
  • 2. Redmine検索の 未来像 Powered by Rabbit 3.0.0 Redmine検索の未来 全文検索プラグインhttps://github.com/clear-code/redmine_full_text_search
  • 3. Redmine検索の 未来像 Powered by Rabbit 3.0.0 従来の検索システム SQLの標準機能で実現 比較条件+LIKE 例: プロジェクト絞り込み:等価条件 コメント検索:LIKE
  • 4. Redmine検索の 未来像 Powered by Rabbit 3.0.0 未来の検索システム 全文検索エンジンで実現 全文検索だけでなく比較条件もすべて 例: プロジェクト絞り込み:等価条件 コメント検索:全文検索
  • 5. Redmine検索の 未来像 Powered by Rabbit 3.0.0 従来の検索システムの課題 速度とソート
  • 6. Redmine検索の 未来像 Powered by Rabbit 3.0.0 速度 コメント増加→検索時間増加 検索への期待 すばやく必要な情報を見つけたい 遅いと期待に応えられない
  • 7. Redmine検索の 未来像 Powered by Rabbit 3.0.0 ソート 更新時刻のみ 検索への期待 すばやく必要な情報を見つけたい 最新の情報≠必要な情報 必要な順にソートしないと 期待に応えられない
  • 8. Redmine検索の 未来像 Powered by Rabbit 3.0.0 未来の検索システム 速度 コメント増加→検索時間超微増 すばやく必要な情報を見つけられる ソート 更新時刻+適合度 すばやく必要な情報を見つけられる
  • 9. Redmine検索の 未来像 Powered by Rabbit 3.0.0 未来の検索システムの改善点 高速さと高精度
  • 10. Redmine検索の 未来像 Powered by Rabbit 3.0.0 未来の検索システムのさらなる改善点 検索対象を追加 クリックで絞り込めるUI 表現の揺らぎに対応 定量的な検索機能の評価基盤
  • 11. Redmine検索の 未来像 Powered by Rabbit 3.0.0 検索対象を追加 メタデータ ステータス・トラッカー・ユーザー・… 添付ファイル・リポジトリー内のファイル PDF・オフィス文書からもテキスト抽出 アーカイブも展開して再帰的にテキスト抽出
  • 12. Redmine検索の 未来像 Powered by Rabbit 3.0.0 メタデータで検索
  • 13. Redmine検索の 未来像 Powered by Rabbit 3.0.0 クリックで絞り込めるUI ユーザー:なにを探しているかわからない 検索システムとの対話の中で見つける 対話:検索結果+次のクエリーを提案 ユーザーと検索システムが一緒に答えを探す 提案されたクエリーで絞り込み
  • 14. Redmine検索の 未来像 Powered by Rabbit 3.0.0 表現の揺らぎに対応 表現の揺らぎ: 同義語:ネジとビス 異表記:ネジと螺子 クエリー拡張: 検索前に自動でクエリーを拡張 ネジ→ネジ OR ビス OR 螺子
  • 15. Redmine検索の 未来像 Powered by Rabbit 3.0.0 クエリー拡張:Groonga→Groonga OR PGroonga
  • 16. Redmine検索の 未来像 Powered by Rabbit 3.0.0 表現の揺らぎのメンテナンス 手動はツライ。。。 誰がやるの? いつやるの? 自動化しないと陳腐化
  • 17. Redmine検索の 未来像 Powered by Rabbit 3.0.0 未来の検索システムでのメンテナンス 自動化中
  • 18. Redmine検索の 未来像 Powered by Rabbit 3.0.0 自動化方法 既知の情報を収集 例:Wikipediaのリダイレクト情報 例:NEologdの情報 Redmine内の情報から学習
  • 19. Redmine検索の 未来像 Powered by Rabbit 3.0.0 既知の情報を収集 メリット:楽 スクリプトを準備する予定 デメリット: 一般的な言い回ししか集まらない ドメイン固有の言い回しがない
  • 20. Redmine検索の 未来像 Powered by Rabbit 3.0.0 Redmine内の情報から学習 メリット: ドメイン固有の言い回しに対応可 デメリット: 難しい
  • 21. Redmine検索の 未来像 Powered by Rabbit 3.0.0 学習:検証中 テキスト情報を抽出 全文検索用に抽出した情報を活用 自然言語っぽいものだけ選別して行に分割 1. SentencePieceでトークナイズ MeCabだとドメイン固有の未知語に対応できない 2. BERT/fastTextでベクトル化3. 類似単語を揺らぎとして抽出4.
  • 22. Redmine検索の 未来像 Powered by Rabbit 3.0.0 学習:現状(伸びしろしかない)
  • 23. Redmine検索の 未来像 Powered by Rabbit 3.0.0 定量的な検索機能の評価基盤 定性的な評価(例:インタビュー) 体感で速くなった! 体感で見つかりやすくなった! 定量的な評価(例:ログ分析) 利用ユーザーが○人 ユーザーが必要な情報を取得できた割合が○% ログを追加し定量的な評価が可能に
  • 24. Redmine検索の 未来像 Powered by Rabbit 3.0.0 定量的な評価基盤:現状 Railsのログに記録 スクリプトでログを解析してレポート
  • 25. Redmine検索の 未来像 Powered by Rabbit 3.0.0 定量的な評価基盤:未来 RDBMSに記録 管理画面でリアルタイムにレポート
  • 27. Redmine検索の 未来像 Powered by Rabbit 3.0.0 さらなる高速化 常に1秒未満を目指す 検索システムとの対話ストレスをなくす インクリメンタル検索も現実的に パカパカしてうるさいかもしれない Googleはこの機能を捨てた 定量的な評価をしながら取捨選択する予定
  • 28. Redmine検索の 未来像 Powered by Rabbit 3.0.0 入力補完 入力中にクエリーを提案 Googleはこの機能にシフトした 課題:良質な補完候補の用意 Wikipediaなど一般的なデータを活用 Redmine内のデータから機械学習で生成 極秘データの扱いに注意が必要
  • 29. Redmine検索の 未来像 Powered by Rabbit 3.0.0 テキスト抽出可能ファイルの追加 .msg(Outlookのファイル) SVGファイル CADファイル ...
  • 30. Redmine検索の 未来像 Powered by Rabbit 3.0.0 Redmine検索の未来 全文検索プラグインhttps://github.com/clear-code/redmine_full_text_search
  • 31. Redmine検索の 未来像 Powered by Rabbit 3.0.0 一緒に未来を作ろう! 仕事として一緒に開発 あなた:お金と要望とデータを提供 クリアコード:開発・コンサルティング 成果は自由なソフトウェアとして公開 連絡先 https://www.clear-code.com/contact/