1
全文検索エンジンSedue
~新機能の紹介~
(株)プリファードインフラストラクチャー
最高技術責任者
太田一樹
2
アジェンダ
全文検索エンジン Sedue(セデュー)紹介製品概要
導入事例
新バージョンの紹介カラム指向アーキテクチャ
検索と推薦の統合
SSD向けインデックス方式の搭載
3
Sedue
全文検索エンジン最先端の検索インデックス方式を実装インデックスとは車で言う所のrdquoエンジンrdquo速度マシン台数などを決定づける
リニアなスケールアップ128スレッド Sun UltraSparc T2
容易なスケールアウト文章容量クエリ数の増加に柔軟に対応
用途Web検索 サイト内検索 ブログ検索
企業内文書 文献検索 特許
テキストマイニング
4
弊社導入実績取引実績
株式会社エフルートhttpfroutejp
携帯検索サービスへの製品提供ならびにLLP設立
400万UU 月
はてな株式会社httpbhatenanejp
『はてなブックマーク』への製品提供ならびに戦略的提携
約1300万URLの全文検索
某大学研究機関ゲノム解析研究への製品提供
ゲノム塩基配列上の高速曖昧検索
5
Sedueの性能
OSS検索エンジンとの比較
少ないインデックスサイズでオンメモリ検索を実現
検索スループットも他のエンジンを圧倒
インデックス構築速度 インデックスサイズ 検索スループット
6
システム導入事例はてなブックマークシステム(httpbhatenanejpsearch)
サーチャー
サーチャー
サーチャー
サーチャー
クエリサーバー
サーチャー
インデクサ
インデックスマネージャー
インデクサインデックス送信
本文データ保存
サーチャーに並列に検索させて結果を取得
クローラー
Web
②スケーラビリティ文章サイズが増加した場合
無停止でサーチャーの増減が可能
サーチャーSedue
全文検索システム
Webからページを取得
ブックマーク登録
検索
文章登録
インデクサ
①オンメモリ検索文章サイズと同程度の総メモリ量のみで
漏れのない高速な検索が可能
更新量が増加した場合無停止でインデクサの増減が可能
③半リアルタイム(2~3分)検索用インデックス作成
7
既存のSedueの利点欠点
利点オンメモリでの高速な検索複数マシンを利用した分散検索分散検索ノード追加の容易さ半リアルタイムインデクシング
欠点データに対する柔軟性に欠くあるフィールドに対するldquo検索rdquoしかできない
bull タイトルだけで検索タイトル+本文で検索データベースとの統合の難しさ
bull 様々なテーブル定義からのデータインポート
検索インデックス手法が固定ハードウェアの進化への対応が遅れてしまう
8
例 多彩な検索条件 (livedoorグルメさん)
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
2
アジェンダ
全文検索エンジン Sedue(セデュー)紹介製品概要
導入事例
新バージョンの紹介カラム指向アーキテクチャ
検索と推薦の統合
SSD向けインデックス方式の搭載
3
Sedue
全文検索エンジン最先端の検索インデックス方式を実装インデックスとは車で言う所のrdquoエンジンrdquo速度マシン台数などを決定づける
リニアなスケールアップ128スレッド Sun UltraSparc T2
容易なスケールアウト文章容量クエリ数の増加に柔軟に対応
用途Web検索 サイト内検索 ブログ検索
企業内文書 文献検索 特許
テキストマイニング
4
弊社導入実績取引実績
株式会社エフルートhttpfroutejp
携帯検索サービスへの製品提供ならびにLLP設立
400万UU 月
はてな株式会社httpbhatenanejp
『はてなブックマーク』への製品提供ならびに戦略的提携
約1300万URLの全文検索
某大学研究機関ゲノム解析研究への製品提供
ゲノム塩基配列上の高速曖昧検索
5
Sedueの性能
OSS検索エンジンとの比較
少ないインデックスサイズでオンメモリ検索を実現
検索スループットも他のエンジンを圧倒
インデックス構築速度 インデックスサイズ 検索スループット
6
システム導入事例はてなブックマークシステム(httpbhatenanejpsearch)
サーチャー
サーチャー
サーチャー
サーチャー
クエリサーバー
サーチャー
インデクサ
インデックスマネージャー
インデクサインデックス送信
本文データ保存
サーチャーに並列に検索させて結果を取得
クローラー
Web
②スケーラビリティ文章サイズが増加した場合
無停止でサーチャーの増減が可能
サーチャーSedue
全文検索システム
Webからページを取得
ブックマーク登録
検索
文章登録
インデクサ
①オンメモリ検索文章サイズと同程度の総メモリ量のみで
漏れのない高速な検索が可能
更新量が増加した場合無停止でインデクサの増減が可能
③半リアルタイム(2~3分)検索用インデックス作成
7
既存のSedueの利点欠点
利点オンメモリでの高速な検索複数マシンを利用した分散検索分散検索ノード追加の容易さ半リアルタイムインデクシング
欠点データに対する柔軟性に欠くあるフィールドに対するldquo検索rdquoしかできない
bull タイトルだけで検索タイトル+本文で検索データベースとの統合の難しさ
bull 様々なテーブル定義からのデータインポート
検索インデックス手法が固定ハードウェアの進化への対応が遅れてしまう
8
例 多彩な検索条件 (livedoorグルメさん)
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
3
Sedue
全文検索エンジン最先端の検索インデックス方式を実装インデックスとは車で言う所のrdquoエンジンrdquo速度マシン台数などを決定づける
リニアなスケールアップ128スレッド Sun UltraSparc T2
容易なスケールアウト文章容量クエリ数の増加に柔軟に対応
用途Web検索 サイト内検索 ブログ検索
企業内文書 文献検索 特許
テキストマイニング
4
弊社導入実績取引実績
株式会社エフルートhttpfroutejp
携帯検索サービスへの製品提供ならびにLLP設立
400万UU 月
はてな株式会社httpbhatenanejp
『はてなブックマーク』への製品提供ならびに戦略的提携
約1300万URLの全文検索
某大学研究機関ゲノム解析研究への製品提供
ゲノム塩基配列上の高速曖昧検索
5
Sedueの性能
OSS検索エンジンとの比較
少ないインデックスサイズでオンメモリ検索を実現
検索スループットも他のエンジンを圧倒
インデックス構築速度 インデックスサイズ 検索スループット
6
システム導入事例はてなブックマークシステム(httpbhatenanejpsearch)
サーチャー
サーチャー
サーチャー
サーチャー
クエリサーバー
サーチャー
インデクサ
インデックスマネージャー
インデクサインデックス送信
本文データ保存
サーチャーに並列に検索させて結果を取得
クローラー
Web
②スケーラビリティ文章サイズが増加した場合
無停止でサーチャーの増減が可能
サーチャーSedue
全文検索システム
Webからページを取得
ブックマーク登録
検索
文章登録
インデクサ
①オンメモリ検索文章サイズと同程度の総メモリ量のみで
漏れのない高速な検索が可能
更新量が増加した場合無停止でインデクサの増減が可能
③半リアルタイム(2~3分)検索用インデックス作成
7
既存のSedueの利点欠点
利点オンメモリでの高速な検索複数マシンを利用した分散検索分散検索ノード追加の容易さ半リアルタイムインデクシング
欠点データに対する柔軟性に欠くあるフィールドに対するldquo検索rdquoしかできない
bull タイトルだけで検索タイトル+本文で検索データベースとの統合の難しさ
bull 様々なテーブル定義からのデータインポート
検索インデックス手法が固定ハードウェアの進化への対応が遅れてしまう
8
例 多彩な検索条件 (livedoorグルメさん)
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
4
弊社導入実績取引実績
株式会社エフルートhttpfroutejp
携帯検索サービスへの製品提供ならびにLLP設立
400万UU 月
はてな株式会社httpbhatenanejp
『はてなブックマーク』への製品提供ならびに戦略的提携
約1300万URLの全文検索
某大学研究機関ゲノム解析研究への製品提供
ゲノム塩基配列上の高速曖昧検索
5
Sedueの性能
OSS検索エンジンとの比較
少ないインデックスサイズでオンメモリ検索を実現
検索スループットも他のエンジンを圧倒
インデックス構築速度 インデックスサイズ 検索スループット
6
システム導入事例はてなブックマークシステム(httpbhatenanejpsearch)
サーチャー
サーチャー
サーチャー
サーチャー
クエリサーバー
サーチャー
インデクサ
インデックスマネージャー
インデクサインデックス送信
本文データ保存
サーチャーに並列に検索させて結果を取得
クローラー
Web
②スケーラビリティ文章サイズが増加した場合
無停止でサーチャーの増減が可能
サーチャーSedue
全文検索システム
Webからページを取得
ブックマーク登録
検索
文章登録
インデクサ
①オンメモリ検索文章サイズと同程度の総メモリ量のみで
漏れのない高速な検索が可能
更新量が増加した場合無停止でインデクサの増減が可能
③半リアルタイム(2~3分)検索用インデックス作成
7
既存のSedueの利点欠点
利点オンメモリでの高速な検索複数マシンを利用した分散検索分散検索ノード追加の容易さ半リアルタイムインデクシング
欠点データに対する柔軟性に欠くあるフィールドに対するldquo検索rdquoしかできない
bull タイトルだけで検索タイトル+本文で検索データベースとの統合の難しさ
bull 様々なテーブル定義からのデータインポート
検索インデックス手法が固定ハードウェアの進化への対応が遅れてしまう
8
例 多彩な検索条件 (livedoorグルメさん)
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
5
Sedueの性能
OSS検索エンジンとの比較
少ないインデックスサイズでオンメモリ検索を実現
検索スループットも他のエンジンを圧倒
インデックス構築速度 インデックスサイズ 検索スループット
6
システム導入事例はてなブックマークシステム(httpbhatenanejpsearch)
サーチャー
サーチャー
サーチャー
サーチャー
クエリサーバー
サーチャー
インデクサ
インデックスマネージャー
インデクサインデックス送信
本文データ保存
サーチャーに並列に検索させて結果を取得
クローラー
Web
②スケーラビリティ文章サイズが増加した場合
無停止でサーチャーの増減が可能
サーチャーSedue
全文検索システム
Webからページを取得
ブックマーク登録
検索
文章登録
インデクサ
①オンメモリ検索文章サイズと同程度の総メモリ量のみで
漏れのない高速な検索が可能
更新量が増加した場合無停止でインデクサの増減が可能
③半リアルタイム(2~3分)検索用インデックス作成
7
既存のSedueの利点欠点
利点オンメモリでの高速な検索複数マシンを利用した分散検索分散検索ノード追加の容易さ半リアルタイムインデクシング
欠点データに対する柔軟性に欠くあるフィールドに対するldquo検索rdquoしかできない
bull タイトルだけで検索タイトル+本文で検索データベースとの統合の難しさ
bull 様々なテーブル定義からのデータインポート
検索インデックス手法が固定ハードウェアの進化への対応が遅れてしまう
8
例 多彩な検索条件 (livedoorグルメさん)
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
6
システム導入事例はてなブックマークシステム(httpbhatenanejpsearch)
サーチャー
サーチャー
サーチャー
サーチャー
クエリサーバー
サーチャー
インデクサ
インデックスマネージャー
インデクサインデックス送信
本文データ保存
サーチャーに並列に検索させて結果を取得
クローラー
Web
②スケーラビリティ文章サイズが増加した場合
無停止でサーチャーの増減が可能
サーチャーSedue
全文検索システム
Webからページを取得
ブックマーク登録
検索
文章登録
インデクサ
①オンメモリ検索文章サイズと同程度の総メモリ量のみで
漏れのない高速な検索が可能
更新量が増加した場合無停止でインデクサの増減が可能
③半リアルタイム(2~3分)検索用インデックス作成
7
既存のSedueの利点欠点
利点オンメモリでの高速な検索複数マシンを利用した分散検索分散検索ノード追加の容易さ半リアルタイムインデクシング
欠点データに対する柔軟性に欠くあるフィールドに対するldquo検索rdquoしかできない
bull タイトルだけで検索タイトル+本文で検索データベースとの統合の難しさ
bull 様々なテーブル定義からのデータインポート
検索インデックス手法が固定ハードウェアの進化への対応が遅れてしまう
8
例 多彩な検索条件 (livedoorグルメさん)
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
7
既存のSedueの利点欠点
利点オンメモリでの高速な検索複数マシンを利用した分散検索分散検索ノード追加の容易さ半リアルタイムインデクシング
欠点データに対する柔軟性に欠くあるフィールドに対するldquo検索rdquoしかできない
bull タイトルだけで検索タイトル+本文で検索データベースとの統合の難しさ
bull 様々なテーブル定義からのデータインポート
検索インデックス手法が固定ハードウェアの進化への対応が遅れてしまう
8
例 多彩な検索条件 (livedoorグルメさん)
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
8
例 多彩な検索条件 (livedoorグルメさん)
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
9
Sedue
新バージョンのご紹介
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
10
新バージョン 2つの特徴
汎用性様々なデータに対する柔軟な検索操作
検索方法精度の柔軟な調整
様々な条件でのソートフィルタリング
高速性物理デバイスに合わせた最適化
SSDに最適化された検索インデックス方式の搭載
カスタマイズコストHWコストを劇的に削減
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
11
新旧ソフトウェアスタック比較
カラム指向アーキテクチャ複数の検索方式推薦エンジンを統合
Sedueという単一のシステムで検索と推薦を導入可能
SSD向けインデックスエンジン数十GB単位のデータでも1つのSSDドライブで処理可能
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
コスト削減
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
12
カラム指向アーキテクチャ (1)
スキーマ定義データに対してRDBMSのようなスキーマを定義型 int string double datetime etc
インデックス定義どのスキーマの列に対して検索を行うか
どのインデックス方式を用いるか転置ファイル n-gram 接尾辞配列etc
インデックスに対して検索クエリを投げる事でデータに対する検索が可能
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
13
カラム指向アーキテクチャ (2)
ID Title Content Date
フィールド定義
ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索1 検索2
(タイトル+本文検索) (本文のみの検索)
フィルタ
同義語拡張 ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
転置ファイル N-Gram
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
14
カラム指向アーキテクチャ (3)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All インデックス方式A(TITLE CONTENT)Search_Content インデックス方式B(CONTENT)
クエリ例(Search_All テスト)(Search_Content テスト)DATEgt20090312(Search_Content テスト)DATEgt20090312desc=DATE
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
15
推薦技術との統合
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
16
推薦技術とは
あるデータについての関連情報を推薦この本を買っている人はこんな本も買っています
この記事に似ているのはこの記事です
実現方法全てのデータに対してインデックスを作成
インデックスを利用し関連度を計算
関連度の高いアイテムを抽出
詳しくは最後のセッション
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
17
ldquo検索rdquoとrdquo推薦rdquoの類似性
インデックスにクエリを与えると結果を返す検索入力 検索クエリ結果 クエリを含む文章群例 ldquo検索rdquoを渡すとrdquo検索rdquoを含む文章群
推薦 データのIDを渡すと類似するデータID列を返す入力 あるデータID結果 与えられたデータに類似するデータのID列例 ある本のIDを渡すとそれに関連する本のID列
本質的に統合可能ではないかデータに対してインデックスを作成しそこから情報抽出
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
18
新旧ソフトウェアスタック
カラム指向アーキテクチャ層で検索と推薦を統合的に扱えるようにした
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
19
カラム指向アーキテクチャ 推薦との統合
ID Title Content Date
フィールド定義ユーザー
ID123 タイトル1 内容1 20090310
ID124 タイトル2 内容2 20090311
ID125 タイトル2 内容2 20090311
ID126 タイトル2 内容2 20090311
検索 推薦
(タイトル+本文検索) (コンテンツ推薦)
フィルタ
ソート 条件式 ドリルダウン etc
参照
(値の参照)
インデックス定義
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
20
カラム指向アーキテクチャ (検索 amp 推薦)
スキーマ例ID stringTITLE stringCONTENT stringDATE datetime
インデックス例Search_All 検索用インデックス(TITLE CONTENT)Recommend_Content 推薦用インデックス(CONTENT)
クエリ例(Search_All テスト)(Recommend_Content ID124)(Recommend_Content ID124)DATEgt20090401(Recommend_Content ID124)amp(Search_All 野球)
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
21
何が嬉しいか
検索と推薦で別々のシステム導入をしていた部分をSedueのみで行える
データに対するあらゆる操作を統合できる圧倒的な柔軟性
データ == テキストデータとは限らない
類似画像類似動画画像動画に対するインデックス作成手法も研究中
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
22
新バージョンのサポートする検索インデックス方式
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
23
新旧ソフトウェアスタック
サポートするインデックス方式転置ファイル N-Gram CSA
SSD向けインデックス方式 (次セッション)
CSA
DRAM SSD
SA
HDD
転置ファイル N-Gram
カラム指向アーキテクチャ
分散クエリ
CSA
DRAM
スコアリング
分散クエリ
旧 新
推薦エンジン
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
24
転置ファイルInverted File Indexing
各単語毎にどの文書に出現したかを記録
長所 シンプル速い分散処理しやすい
短所 検索漏れが生じる フレーズ検索が苦手
東京 10 15 16 20 21 22
東寺 10 15
hellip
文書番号を記録
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
25
長さN(=23)の部分文字列を単語とみなし転置ファイルを構築
長所 漏れがないシンプル
短所 索引が大きい 非常に遅くなる場合もある
東京都庁に今日hellip
東京都
京都庁
都庁に
庁に今
0
1
2
3
102
150
出現位置を記録
N-gram方式
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
26
接尾辞配列 Suffix Arrays (SA)
全接尾辞を辞書式順序でソートした結果
長所 漏れがないどんなクエリでも高速
短所 索引が大きい構築に時間がかかる
abracadabra$ 11 $
10 a$
7 abra$
0 abracadabra$
3 acadabra$
5 adabra$
8 bra$
1 bracadabra$
4 cadabra$
6 dabra$
0 abracadabra$
1 bracadabra$
2 racadabra$
3 acadabra$
4 cadabra$
5 adabra$
6 dabra$
7 abra$
dabra = dabra$
辞書式順序ソート
出現位置(先頭位置からのオフセット)
例dabraを検索する1 配列 SA の大きさは 11 なので配列インデックスの中心値 5 から検索
2 SA[5] = 8 この 8 は ldquoabracadabrardquo の ldquobrardquo の出現位置を指している
3 検索クエリの dabra と bra を比較するとdabra の方が辞書式順で大きい
4 よって検索範囲は SA[5] から SA[11] の間に絞り込まれる
5 SA[5] と SA[11] の間 rarr SA[8] = 6
6 SA[8] = 6 の 6 は ldquoabracadabrardquo の dabraに一致よって dabraの出現位置は 6 と判明
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
27
圧縮接尾辞配列
接尾辞配列の機能はそのままにコンパクトに保存(テキストサイズと同程度)接尾辞配列をさらに変換し圧縮
形態素解析の解析漏れも解決
検索対象テキスト自身の情報も同時に保持スニペットも索引から復元できる
普通のPC上でヒトゲノムやwikipedia全部(日本語+英語)が高速に検索できる
実装は難しい
rArr圧縮接尾辞配列を搭載した初の商用検索エンジン
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
28
サポートしているインデックス方式
漏れの
ない検索
フレーズ検索
検索速度
構築速度
サイズ HDDに置ける
転置ファイル
times times
N-gram
接尾辞配列
times times
CSA times
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
29
インデックス方式の選択
求められる要件デバイスに合わせて選択を行う必要がある
圧縮接尾辞
メモリ SSD
SA
HDD
N-gram
検索アルゴリズムは本質的にユーザークエリ集合に対してランダムなのにかかわらずランダムリードの性能が低い
ランダムアクセス性能は高いもののシステムに搭載できるモジュール数は制限されているまた容量当たりの単価は高価
単位容量あたりの価格はリーズナブルまたシステムとのインターコネクトの面からもスケーラブル一台のサーバーに多数搭載することが可能である (次セッション)
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
30
各ストレージデバイスの特性
容量
パフォーマンス
HDD
~ 5 qps ~ 100 qps
~30G
~300G
ブログWeb検索社内文書
EC
速度容量共に向上中
速度容量共に停滞の感有り
DRAM
SSD
次のセッション
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
31
実際のシステム構成例
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
32
例1 ニュースサイト
記事ID タイトル 内容 更新日時
フィールド定義ユーザー
ID123 水嶋ヒロ 内容1 20090403
ID124 ミサイル 内容2 20090404
ID125 イチロー 内容3 20090405
ID126 日銀総裁 内容4 20090405
検索 推薦
(記事検索) (関連記事推薦)
フィルタ
更新日時でのソートフィルタリング等
参照
(値の参照)
インデックス定義
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
33
例2 SNS
人ID 名前 プロフ 年齢
フィールド定義ユーザー
ID123 西川 内容1 27
ID124 徳永 内容2 27
ID125 岡野原 内容2 27
ID126 田中 内容2 27
検索 推薦
(プロフィール検索) (コンテンツ推薦)
フィルタ
年齢でのソートフィルタリング等
参照
(値の参照)
インデックス定義
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
34
これからの開発ロードマップ
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
35
Sedueの実現する方向性
Enterprise Search
Web Search
構造的なデータ
データへのアクセシビリティ
データベースとの統合
多種多様なデータフォーマットへの対応
大規模データ処理
リアルタイム性
ログ分析
可用性
Sedue
検索エンジンの概念を汎用化しRDBMSのようなミドルウェアとして確立させる
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
36
Sedueの最終目標
あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン
Web
Sedue
マルチメディア
ファイルサーバー
データベース統合
メールシステム
情報の抽出
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
37
Sedueロードマップ
bull統計データの可視化
bull管理ウェブアプリケーションの整備
管理機能の拡充
bullユーザーフィードバッククリックログからの情報抽出
bullパーソナライゼーション
bull画像認識の組み込み
PFIテクノロジの統合
bullデータセンタ向け検索ソリューションの構築
bull大規模分散環境向けクラスタウェア
多様な分散アーキテクチャへの対応
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します
38
まとめ
Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合
高速性SSD向け検索インデックス方式の搭載
Sedueに情報抽出技術の全てを集約して行く画像動画なども
次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します