スライド 1 - cloud-search-engine

Download Report

Transcript スライド 1 - cloud-search-engine

協調サーチエンジンによるクラウド検索
1660070043 市川 友大
分散システム研究室
背景
• クラウドとは
– インターネットを経由して、必要なリソースを借りる
• 代表的なサービス:Amazon Web Services、Google App Engine
– 負荷に応じサーバの台数を変え、コストを抑える
• クラウドの分類
– パブリッククラウド
• 誰もが利用できるクラウド
• 企業の機密情報保持の問題がある
– プライベートクラウド
• 独自にクラウドを構築
• 会社・グループ企業でイントラネットで利用する
目的
• クラウドの活用
– オンラインストレージ
• 既に存在するサービス:Dorpbox、Evernote、等
– 全文検索
• 作業効率を向上
• Dropbox→全文検索不可能
• Evernote→Text、OCRの全文検索可能、だがHTML、Office、
PDFはアップロード不可能
• クラウド環境
– Amazon Web Services
• IaaS (Infrastructure as a Service)でクラウド検索を開発
関連研究①
• クラウドの仕組み
– スケールアウト
• 安価なサーバを多様する
• 分散処理させて性能を向上させる
– 仮想化
• 一台のサーバに複数のマシンを仮想的に構築する
• IaaS型クラウド
– OSやミドルウェアを自由に選択しサーバを構築できる
関連研究①
• Amazon Web Services
– Amazon EC2 (Amazon Elastic Compute Cloud)
• インスタンス(仮想マシン)を提供するサービス
• 時間単位で利用可能
• インスタンスが終了するとデータが削除される
– Amazon S3 (Amazon Simple Storage Service)
• EC2からデータベースサーバとして利用
• HTTPリクエストでアクセス可能
Amazon S3
AMI
Amazon EC2
インスタンス
インスタンス
インスタンス
AMI
AMI
関連研究②
• 協調サーチエンジン
– 分散したサーチエンジンが協調して検索または更新を行う分散型の
サーチエンジン
Location
Server
•
Location DB
Location Server
検索式に対してインデックスを持っているアドレスを管理
Cache Server
•
Cache DB
Cache Server
検索時のアクセス先情報と検索結果をキャッシュする
HTTP
User
Agent
LMSE0
LMSE1
LMSE2
User I/F
User I/F
User I/F
Engine I/F
Engine I/F
Engine I/F
LSE0
LSE1
LSE2
Engine
Engine
Engine
Index
Index
Index
Crawler
Crawler
Crawler
•
Local Meta Search Engine (LMSE)
ユーザからの要求を受け付け、CSに転送
LSEに検索を依頼
•
Local Search Engine (LSE)
局所的な文書収集→インデックス作成→検索
関連研究②
• 検索
1.
2.
3.
4.
LMSEに検索依頼を出す
CSに問い合わせて、無ければLSへ
各LMSEはLSEに検索をする
結果をまとめて、LMSEに返す
Location
Server
HTTP
User
Agent
Location DB
LMSE0
LMSE1
LMSE2
User I/F
User I/F
User I/F
Engine I/F
Engine I/F
Engine I/F
LSE0
LSE1
LSE2
Engine
Engine
Engine
Index
Index
Index
Crawler
Crawler
Crawler
Location
Server
Location DB
Cache Server
Cache DB
LMSE0
LMSE1
LMSE2
User I/F
User I/F
User I/F
Engine I/F
Engine I/F
Engine I/F
LSE0
LSE1
LSE2
Engine
Engine
Engine
Index
Index
Index
Crawler
Crawler
Crawler
• 更新
1.
2.
3.
4.
LSはLMSEの更新要求をする
LMSEはLSEインデックス更新を要求する
LSEがインデックスを更新すると、LMSEはキーワード
とスコアの情報をLSに返送する
LSは送られてキーワードとスコアの情報をLocation
DBに登録し、LMSEの問い合わせに答えられる
設計
• Account Server (AS)
– アカウントによってアクセスできる文書を管理する
• Location Server (LS)
– 検索式からアクセス先のLSEを決める
– 各LSEの索引内容を保持する
• 転置索引の単語一覧とその単語を含む文書数
• LSEの全文書数
• Upload Server (US)
– ユーザからのファイルアップロードを管理する
• Global Search Engine (GSE)
– LSEに分散検索を依頼する
– ランキングの修正
– アクセス数が増えれば、GSEのサーバを増加させる
• Local Search Engine (LSE)
– 実際のインデックスを保持し、検索を担当する
– 格納するファイルが多くなるに連れて、台数を増加させる
設計
• 検索
Browser
Account DB
Location DB
AS
LS
US
GSE
LSE
GSE
LSE
LSE
1.
2.
3.
4.
5.
6.
台数を増やせる
ASにアクセスし、アカウント確認をする
GSEにクエリを送る
LSにアクセスし、クエリの内容からLSEの接続先を決める又IDFの値を取得する
LSEに分散検索を依頼する
GSEでランキングを修正する
結果をブラウザに返す
設計
• 更新
Account DB
Location DB
AS
LS
Browser
US
LSE
GSE
LSE
GSE
LSE
1.
2.
3.
4.
5.
ASにアクセスし、アカウント確認をする
USにアクセスし、インデックスを格納するLSMを決める
LSEにアクセスし、インデックスを作成させる
LSにアクセスし、LSEが更新したことを通知する
LSがLSEにアクセスし、インデックスの内容からLocation DBを更新する
台数を増やせる
今後の課題
• クラウド検索のシステムを実装する。
– Location Serverがほぼ実装完了
– 分散検索はOSSのApache Solrを利用
•
•
•
•
検索サーバの台数が増えても検索が可能か
セキュリティ・プライバシーは大丈夫か
負荷に応じてサーバの台数を増やす
LSEの死活問題を確認させる
ご清聴ありがとうございました
目的
• クラウドをオンラインストレージとしての活用
– 例えば、Dropbox
• データを効率よく利用するために検索が重要
– ファイルがアップロードされたら検索可能にする
• クラウドの環境
– Amazon Web Servicesを想定しての設計
– データを効率良く利用するためにも、検索技術は欠かせないもので
ある。
– アップロード直後から検索できなければ、データの活用とは言えない
• クラウドの環境が数多くのサーバで構成されている。
– 分散検索機能が必要になる。
• Amazon Web Service
– IaaSで構築するクラウドを対象にシステムを開発
設計
• ユーザのアクセスしてよい範囲を決めるため、ロ
グイン処理をする。
• 検索式の内容に応じて検索サーバを決定する。
• Apache Solrを利用して分散検索をする。
• ランキングを直す
• クローラはHTML、PDF、Microsoft Officeのデータ
を扱えるようにする。
• 全ユーザ分のインデックスを作成
設計(検索)
Browser
クエリ
結果
LMSE
Account DB
Account
USER IF
Location
Apache Solr
分散検索
LSE
LSE
LSE
Apache Solr
Apache Solr
Apache Solr
クローラ
クローラ
クローラ
Location DB
設計(検索)
1. アカウント確認
2. キーワード検索からアクセス先を決める
3. 各Solrサーバに分散検索
– アカウント情報も一緒に検索式に組み込む
4. ランキングを直す
– 分散しているIdfを直す
5. 結果を返す
• LocationがLSMの死活問題をする
• 全アカウントのファイルをセカンドレベルSolr
に保存している
関連研究①
• 協調サーチエンジン
– 分散したサーチエンジンが協調して検索または更新を行う分散
型のサーチエンジン
• システム構成
– Location Server(LS)
• 検索式に対してインデックスを持っているアドレスを管理する。
– Cache Server(CS)
• 検索時のアクセス先情報と検索結果をキャッシュするサーバ。
– Local Meta Search Engine(LMSE)
• ユーザからの要求を受け付け、CSに転送する。LSEを用いて局所的な
検索をする。
– Local Search Engine(LSE)
• 局所的な文書収集、インデックス作成、検索を行う。
関連研究①
• 協調サーチエンジン構成図
Location
Server
Location DB
Cache
Server
HTTP
User
Agent
Cache
Server
LMSE0
LMSE1
LMSE2
User I/F
User I/F
User I/F
Engine I/F
Engine I/F
Engine I/F
LSE0
LSE1
LSE2
Engine
Engine
Engine
Indexer
Indexer
Indexer
Crawler
Crawler
Crawler
検索
Location
Server
Location DB
Cache
Server
HTTP
User
Agent
Cache
Server
LMSE0
LMSE1
LMSE2
User I/F
User I/F
User I/F
Engine I/F
Engine I/F
Engine I/F
LSE0
LSE1
LSE2
Engine
Engine
Engine
Indexer
Indexer
Indexer
Crawler
Crawler
Crawler
• ログイン
– ユーザのアクセス範囲を決める
• マスタ
– GlobalIDF
– CheckServer
• LMSE
– トップレベルSolrサーバ
• LSE
– セカンドレベルSolrサーバ
• クローラ
– テキスト、PDF、Officeなどのデータ
概要
• クラウド環境での分散検索
設計
• アカウント管理
– ユーザが検索できる範囲を決める
• Location管理
– 検索式からアクセス先のLMSを決める
• 分散検索
– アカウント情報や検索式を元に検索する
• ランキング修正
– 正しいidf値に直し、ランキングをする
• クローラ
– HTML、PDF、Office、Text
設計(検索)
Browser
Keyword Search
Account Search
GSE
Account
Account DB
USER IF
Top Level
Apache Solr
Location
Location DB
Location Search
Distributed Search
LSE
LSE
Second Level
Apache Solr
Second Level
Apache Solr
Second Level
Apache Solr
Crawler
Crawler
Crawler
LSE
設計(検索)
Browser
Keyword Search
Account Search
GSE
Account
Account DB
USER IF
Top Level
Apache Solr
Location
Location DB
Location Search
Distributed Search
LSE
LSE
Second Level
Apache Solr
Second Level
Apache Solr
Second Level
Apache Solr
Crawler
Crawler
Crawler
LSE
設計(更新)
• Locationが、各LMSのSolrサーバにアクセスす
る
– 転置インデックスの単語一覧
– 単語が含む文書数
• LocationがCassandraでデータを管理する
– Cassandraとは分散DB
• Crawlerは自動で文書を集め、Solrがインデッ
クスを作成
– HTML、PDF、Office、Text 等
設計(更新)
Location
Location DB
LSE
LSE
LSE
Second Level
Apache Solr
Second Level
Apache Solr
Second Level
Apache Solr
Crawler
Crawler
Crawler
HTML、PDF、Office、Text
Internet
関連研究②
• Key-Valueストア
– キーと値の組みを書き込み、キーを指定することで値を
読み出せるデータベース。
値の保存
クライアント
1.Keyとvalueのセットを渡す
Key-value store
key1
value1
Key4
value4
key7
value7
key10
value10
2.保存
値の取得
1.Keyを指定
クライアント
Key-value store
3.Valueを返答
key1
value1
Key4
value4
key7
value7
key10
value10
2.Keyで検索
関連研究②
• Key-Valueストアの特徴
– 問い合わせ方法をキー1つに限定することで、高
速な検索ができる。
• ハッシュテーブルやB-Treeなど
– データ書き換え時に書き換える箇所が少なく抑え
られる
– シンプルなデータ構造のため、分散もしやすい