Top Banner
1 全文検索エンジン Sedue ~新機能の紹介~ ()プリファードインフラストラクチャー 最高技術責任者 太田一樹
38

2009年4月8日セミナー 2.Sedue新機能

Jun 18, 2015

Download

Technology

2009年4月8日開催のセミナー「Extreme Search! 次世代検索エンジンSedue 24が実現する驚異のパフォーマンス」における、セッション「全文検索エンジンSedue ~新機能の紹介~」の配布資料。
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 2: 2009年4月8日セミナー 2.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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 3: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 4: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 5: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 6: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 7: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 8: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 9: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 10: 2009年4月8日セミナー 2.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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 11: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 12: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 13: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 14: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 15: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 16: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 17: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 18: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 19: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 20: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 21: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 22: 2009年4月8日セミナー 2.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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 23: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 24: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 25: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 26: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 27: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 28: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 29: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 30: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 31: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 32: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 33: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 34: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 35: 2009年4月8日セミナー 2.Sedue新機能

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を使用した検索エンジンの内部アルゴリズム等を紹介します

Page 36: 2009年4月8日セミナー 2.Sedue新機能

36

Sedueの最終目標

あらゆるデータからの効率的な情報抽出情報の蓄積から抽出への流れを加速させるエンジン

Web

Sedue

マルチメディア

ファイルサーバー

データベース統合

メールシステム

情報の抽出

37

Sedueロードマップ

bull統計データの可視化

bull管理ウェブアプリケーションの整備

管理機能の拡充

bullユーザーフィードバッククリックログからの情報抽出

bullパーソナライゼーション

bull画像認識の組み込み

PFIテクノロジの統合

bullデータセンタ向け検索ソリューションの構築

bull大規模分散環境向けクラスタウェア

多様な分散アーキテクチャへの対応

38

まとめ

Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合

高速性SSD向け検索インデックス方式の搭載

Sedueに情報抽出技術の全てを集約して行く画像動画なども

次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します

Page 37: 2009年4月8日セミナー 2.Sedue新機能

37

Sedueロードマップ

bull統計データの可視化

bull管理ウェブアプリケーションの整備

管理機能の拡充

bullユーザーフィードバッククリックログからの情報抽出

bullパーソナライゼーション

bull画像認識の組み込み

PFIテクノロジの統合

bullデータセンタ向け検索ソリューションの構築

bull大規模分散環境向けクラスタウェア

多様な分散アーキテクチャへの対応

38

まとめ

Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合

高速性SSD向け検索インデックス方式の搭載

Sedueに情報抽出技術の全てを集約して行く画像動画なども

次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します

Page 38: 2009年4月8日セミナー 2.Sedue新機能

38

まとめ

Sedue新バージョン紹介柔軟性カラム指向アーキテクチャ搭載推薦エンジンの統合

高速性SSD向け検索インデックス方式の搭載

Sedueに情報抽出技術の全てを集約して行く画像動画なども

次のセッションはSSDを使用した検索エンジンの内部アルゴリズム等を紹介します