SlideShare a Scribd company logo
1 of 21
Download to read offline
1
クローラ開発の舞台裏
スケーラブルなクローラに必要なもの
Koji Kawamura
Education Engineer
2
This presentation and the accompanying oral presentation contain forward-looking statements, including statements
concerning plans for future offerings; the expected strength, performance or benefits of our offerings; and our future
operations and expected performance. These forward-looking statements are subject to the safe harbor provisions
under the Private Securities Litigation Reform Act of 1995. Our expectations and beliefs in light of currently
available information regarding these matters may not materialize. Actual outcomes and results may differ materially
from those contemplated by these forward-looking statements due to uncertainties, risks, and changes in
circumstances, including, but not limited to those related to: the impact of the COVID-19 pandemic on our business
and our customers and partners; our ability to continue to deliver and improve our offerings and successfully
develop new offerings, including security-related product offerings and SaaS offerings; customer acceptance and
purchase of our existing offerings and new offerings, including the expansion and adoption of our SaaS offerings;
our ability to realize value from investments in the business, including R&D investments; our ability to maintain and
expand our user and customer base; our international expansion strategy; our ability to successfully execute our
go-to-market strategy and expand in our existing markets and into new markets, and our ability to forecast customer
retention and expansion; and general market, political, economic and business conditions.
Additional risks and uncertainties that could cause actual outcomes and results to differ materially are included in
our filings with the Securities and Exchange Commission (the “SEC”), including our Annual Report on Form 10-K for
the most recent fiscal year, our quarterly report on Form 10-Q for the most recent fiscal quarter, and any
subsequent reports filed with the SEC. SEC filings are available on the Investor Relations section of Elastic’s
website at ir.elastic.co and the SEC’s website at www.sec.gov.
Any features or functions of services or products referenced in this presentation, or in any presentations, press
releases or public statements, which are not currently available or not currently available as a general availability
release, may not be delivered on time or at all. The development, release, and timing of any features or functionality
described for our products remains at our sole discretion. Customers who purchase our products and services
should make the purchase decisions based upon services and product features and functions that are currently
available.
All statements are made only as of the date of the presentation, and Elastic assumes no obligation to, and does not
currently intend to, update any forward-looking statements or statements relating to features or functions of services
or products, except as required by law.
Forward-Looking Statements
本セッションの作者について
• Oleksiy Kovyrin
• 業界 20 年のキャリア(運用、性能、スケーラビリティにフォーカス)
• Swiftype 買収により、2017年に Elastic にジョイン
• Swiftype 初期エンジニアの一人
• Swiftype.com のインフラスケーラビリティと運用に注力
• Elastic ジョイン後は App Search プロダクトの Tech Lead に
What is Swiftype?
• 2012 年設立、良い検索を簡単
に
• とてもよくできた Site Search
プロダクト
• 2017 年に Enterprise Search
ソリューション構築のため
Elastic と合併
• Site Search プロダクトのコア
となるパワフルな Web クロー
ラ
Site Search クローラ
簡単な歴史
• 開始当初はシンプル、しかし
すぐにスケーラビリティの課
題に直面
• 20142015 年に全書替え
• 5年間本番運用
• 数千の Web サイトで月間 10
億超のリクエストを処理
Search everything,
everywhere
Bringing the web crawler to all
• Enterprise Search は App
Search と Workplace
Search もある
• 我々のゴールは web サイト
のコンテンツを、全ての
Enterprise Search にイン
ジェストする方法をユーザに
提供すること
• アクセス可能なあらゆるソー
スからコンテンツをインデック
ス
7
Lessons learned
8
Lessons learned
重複コンテンツ除去
Lessons learned: 重複コンテンツ除去
• ユーザの期待はさまざま:
– すでにユニークな Web ページ群をそのままインジェストするケースから
– 数百、数千の重複ページを持つサイトで重複を除去する非常に複雑なメカニズムまで
• 特定の Web サイト向けに重複コンテンツ除去をユーザで制御できるように数
年かけていくつもの機能を開発
• Enterprise Search クローラは、シンプルなクロール設定ルールでクロール処
理を制御する強力な機能を提供
Search results need to be unique
10
Lessons learned
コンテンツの ID
Lessons learned: コンテンツの ID
• 最も一般的なアプローチは URL をページの ID とする方法 Web 標準)
• 実際には、うまく機能しない:
– ページが移動 (名前変更) された際にコンテンツを維持する必要がある
– 複数のページを、インデックス内の単一のコンテンツにグルーピングする必要がある
• Enterprise Search クローラは、Swiftype で数年かけて開発された高度な
URL とコンテンツ正規化、ハッシュテクニックを適用し、これらの課題を解決
Web ページの特定に何を使う?
12
Lessons learned
標準への準拠
Lessons learned:
標準への準拠
• モダンなインターネットは、とてつもな
く巨大 550B pages)
• Web サイトや Web サーバ構築時に
発生しうるミスは全て、すでに実際に
起きている
• クローラもいつかこれらの問題に遭
遇する
標準に準拠している人などいない
Image by KC Green (kcgreendotcom.com)
Lessons learned: 標準への準拠
• 数百万のリンクを持つ、自動生成された巨大な HTML ページ
• 各ページに埋め込まれた数十 MB のインライン Javascript とCSS
• "Page not found" ページのレスポンスを HTTP 200 で返す、またはインデッ
クスすべき正しいページのコンテンツを 200 以外で返す
• コンテンツクローキング (ユーザごとに異なるコンテンツ)
• ページ内の不正な Unicode、 HTTP ヘッダ、 HTML リンク
• 極端に誤った SEO 誤った meta タグ、canonical URL、リダイレクトなど)
• Javascript ベースのレンダリングなどなど
どんだけ壊れているの? いくつかの例
15
Lessons Learned: 標準への準拠
新しい Enterprise Search クローラはさまざまなビルトインのディフェン
シブなメカニズムを備えていて、デフォルトで多くの問題に対応できるよう
な設定となっているので、設定変更は不要、もしくは最小の変更で web
サイトをインデックスできる。
16
Lessons learned
クロールのライフサイクルと期間
Lessons learned: クロールのライフサイクルと期間
• HTTP session state を URL に保持しているサイト (old forums, J2EE
– サイト内の全リンクがユニークなリンクとなり、クロールキューのユニーク化に URL を使ってい
たクローラに無限のタスクを生成していた
• "Page not found" エラーページ上の相対リンクとエラーページが HTTP 200
レスポンスで返されるコンボ
– 全てのリンク切れがインデックスしなければならない正当なコンテンツに、またコンテンツベー
スでの重複除去テクニックで削除の対象に
• プロダクトカタログのコンテンツフィルタ/ソートにURL 部分を利用
– フィルタの組み合わせによりユニークに見える URL が大量に
(e.g., /dresses/color/red/size/small vs. /dresses/size/small/color/red, etc.)
遭遇した問題
Lessons learned: クロールのライフサイクルと期間
• 現実世界は非常に複雑、 "クロール終了" の定義を複数回改訂する必要があっ
た
– 最も明らかな定義 ("全てのページを閲覧 ") は多くの場合、非現実的
– 今日の最新の定義は : "クロールに関するメトリックを元に、サイト内のユニークな web ページ
の大多数を収集済と考えられ、クロールを継続するとリソースの無駄遣いばかりで新しいコン
テンツが見つからない " (そう、長いんです!
• 新しい Enterprise Search クローラは複数のヒューリスティックと設定によりク
ローラの振る舞いを実用に適しユーザが調整可能
– 浅い vs 深い クロール
– クロール期間と深さの上限、 URL 長と深さの上限 など
– コンテンツベースの重複排除
"クロールの終了" を正しく定義することがカギ
19
Lessons learned
オブザーバビリティ
Lessons learned: オブザーバビリティ
• 大規模、または特定のページにおける、Swiftype クローラの動作に関して詳
細なインサイトを得るために大変苦労した
• Elastic ベースのオブザーバビリティ向上に投資を決断
– クローラのヘルスメトリックを Elasticsearch に記録し、 Kibana でダッシュボードに
– Kibana で閲覧する End-to-end の詳細なクロールログから特定ページへとドリルダウン
• 結果のデータセットはクローラのサポートに不可欠であると確証を得た
• 新しい Enterprise Search クローラはこれら全てをビルトイン!
– クローラの判断、アクティビティログは ECS スキーマに準拠
– 詳細なヘルス、パフォーマンスメトリック
– これら全ては Kibana で即座に利用可能
クローラの動作を確認し理解しなければならない
21
Thank You!

More Related Content

Similar to クローラーを迅速に入手:効果的なWebクローラーの作成方法

Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要Salesforce Developers Japan
 
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編Salesforce Developers Japan
 
Lightning Components で 次世代のアプリケーション開発
Lightning Components で 次世代のアプリケーション開発Lightning Components で 次世代のアプリケーション開発
Lightning Components で 次世代のアプリケーション開発Salesforce Developers Japan
 
画像認識AI "Einstein Vision" を試してみよう
画像認識AI "Einstein Vision" を試してみよう画像認識AI "Einstein Vision" を試してみよう
画像認識AI "Einstein Vision" を試してみようSalesforce Developers Japan
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネントSalesforce Developers Japan
 
Salesforce1開発(s1 tour)
Salesforce1開発(s1 tour)Salesforce1開発(s1 tour)
Salesforce1開発(s1 tour)Akihiro Iwaya
 
Salesforce1 platformで爆速モバイル開発
Salesforce1 platformで爆速モバイル開発Salesforce1 platformで爆速モバイル開発
Salesforce1 platformで爆速モバイル開発Salesforce Developers Japan
 
初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成Salesforce Developers Japan
 
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要WebinarGo Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要WebinarSalesforce Developers Japan
 
さあ、はじめよう。Application Partner
さあ、はじめよう。Application Partnerさあ、はじめよう。Application Partner
さあ、はじめよう。Application PartnerKazuki Nakajima
 
Lightning App Builder による ビジュアルアプリケーション開発
Lightning App Builder による ビジュアルアプリケーション開発Lightning App Builder による ビジュアルアプリケーション開発
Lightning App Builder による ビジュアルアプリケーション開発Salesforce Developers Japan
 
絶賛活躍中のモバイルアプリに学ぶモバイルならではのアイデア
絶賛活躍中のモバイルアプリに学ぶモバイルならではのアイデア絶賛活躍中のモバイルアプリに学ぶモバイルならではのアイデア
絶賛活躍中のモバイルアプリに学ぶモバイルならではのアイデアSalesforce Developers Japan
 
パートナーオフィスアワー (Partner office hour) 第九回 アプリケーションライフサイクル管理
パートナーオフィスアワー (Partner office hour) 第九回 アプリケーションライフサイクル管理パートナーオフィスアワー (Partner office hour) 第九回 アプリケーションライフサイクル管理
パートナーオフィスアワー (Partner office hour) 第九回 アプリケーションライフサイクル管理Takahiro Kawabata
 
パートナーオフィスアワー (Partner Office Hour) 第九回 アプリケーションライフサイクル管理
パートナーオフィスアワー (Partner Office Hour) 第九回 アプリケーションライフサイクル管理パートナーオフィスアワー (Partner Office Hour) 第九回 アプリケーションライフサイクル管理
パートナーオフィスアワー (Partner Office Hour) 第九回 アプリケーションライフサイクル管理Takahiro Kawabata
 
Einstein Analyticsによるユースケース別機能、実現例のご紹介(後編)
Einstein Analyticsによるユースケース別機能、実現例のご紹介(後編)Einstein Analyticsによるユースケース別機能、実現例のご紹介(後編)
Einstein Analyticsによるユースケース別機能、実現例のご紹介(後編)Salesforce Developers Japan
 

Similar to クローラーを迅速に入手:効果的なWebクローラーの作成方法 (20)

Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要Salesforce1モバイルアプリケーション開発概要
Salesforce1モバイルアプリケーション開発概要
 
Python開発者のためのHeroku入門
Python開発者のためのHeroku入門Python開発者のためのHeroku入門
Python開発者のためのHeroku入門
 
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
実践!カスタマー エクスペリエンス向上のためのアプリ開発 前編
 
Lightning Components で 次世代のアプリケーション開発
Lightning Components で 次世代のアプリケーション開発Lightning Components で 次世代のアプリケーション開発
Lightning Components で 次世代のアプリケーション開発
 
画像認識AI "Einstein Vision" を試してみよう
画像認識AI "Einstein Vision" を試してみよう画像認識AI "Einstein Vision" を試してみよう
画像認識AI "Einstein Vision" を試してみよう
 
はじめようLightningコンポーネント
はじめようLightningコンポーネントはじめようLightningコンポーネント
はじめようLightningコンポーネント
 
Salesforce1開発(s1 tour)
Salesforce1開発(s1 tour)Salesforce1開発(s1 tour)
Salesforce1開発(s1 tour)
 
Salesforce1 platformで爆速モバイル開発
Salesforce1 platformで爆速モバイル開発Salesforce1 platformで爆速モバイル開発
Salesforce1 platformで爆速モバイル開発
 
Spring '15 開発者向け新機能Webinar
Spring '15 開発者向け新機能WebinarSpring '15 開発者向け新機能Webinar
Spring '15 開発者向け新機能Webinar
 
初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成初めてのWave Analyticsデータセット作成
初めてのWave Analyticsデータセット作成
 
Go Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要WebinarGo Faster with Lightning : Salesforce Lightning 概要Webinar
Go Faster with Lightning : Salesforce Lightning 概要Webinar
 
さあ、はじめよう。Application Partner
さあ、はじめよう。Application Partnerさあ、はじめよう。Application Partner
さあ、はじめよう。Application Partner
 
Lightning App Builder による ビジュアルアプリケーション開発
Lightning App Builder による ビジュアルアプリケーション開発Lightning App Builder による ビジュアルアプリケーション開発
Lightning App Builder による ビジュアルアプリケーション開発
 
Lightningコンポーネントの概要
Lightningコンポーネントの概要Lightningコンポーネントの概要
Lightningコンポーネントの概要
 
PHP開発者のためのHeroku入門
PHP開発者のためのHeroku入門PHP開発者のためのHeroku入門
PHP開発者のためのHeroku入門
 
絶賛活躍中のモバイルアプリに学ぶモバイルならではのアイデア
絶賛活躍中のモバイルアプリに学ぶモバイルならではのアイデア絶賛活躍中のモバイルアプリに学ぶモバイルならではのアイデア
絶賛活躍中のモバイルアプリに学ぶモバイルならではのアイデア
 
パートナーオフィスアワー (Partner office hour) 第九回 アプリケーションライフサイクル管理
パートナーオフィスアワー (Partner office hour) 第九回 アプリケーションライフサイクル管理パートナーオフィスアワー (Partner office hour) 第九回 アプリケーションライフサイクル管理
パートナーオフィスアワー (Partner office hour) 第九回 アプリケーションライフサイクル管理
 
パートナーオフィスアワー (Partner Office Hour) 第九回 アプリケーションライフサイクル管理
パートナーオフィスアワー (Partner Office Hour) 第九回 アプリケーションライフサイクル管理パートナーオフィスアワー (Partner Office Hour) 第九回 アプリケーションライフサイクル管理
パートナーオフィスアワー (Partner Office Hour) 第九回 アプリケーションライフサイクル管理
 
Einstein Next Best Action を試してみよう
Einstein Next Best Action を試してみようEinstein Next Best Action を試してみよう
Einstein Next Best Action を試してみよう
 
Einstein Analyticsによるユースケース別機能、実現例のご紹介(後編)
Einstein Analyticsによるユースケース別機能、実現例のご紹介(後編)Einstein Analyticsによるユースケース別機能、実現例のご紹介(後編)
Einstein Analyticsによるユースケース別機能、実現例のご紹介(後編)
 

More from Elasticsearch

An introduction to Elasticsearch's advanced relevance ranking toolbox
An introduction to Elasticsearch's advanced relevance ranking toolboxAn introduction to Elasticsearch's advanced relevance ranking toolbox
An introduction to Elasticsearch's advanced relevance ranking toolboxElasticsearch
 
From MSP to MSSP using Elastic
From MSP to MSSP using ElasticFrom MSP to MSSP using Elastic
From MSP to MSSP using ElasticElasticsearch
 
Cómo crear excelentes experiencias de búsqueda en sitios web
Cómo crear excelentes experiencias de búsqueda en sitios webCómo crear excelentes experiencias de búsqueda en sitios web
Cómo crear excelentes experiencias de búsqueda en sitios webElasticsearch
 
Te damos la bienvenida a una nueva forma de realizar búsquedas
Te damos la bienvenida a una nueva forma de realizar búsquedas Te damos la bienvenida a una nueva forma de realizar búsquedas
Te damos la bienvenida a una nueva forma de realizar búsquedas Elasticsearch
 
Tirez pleinement parti d'Elastic grâce à Elastic Cloud
Tirez pleinement parti d'Elastic grâce à Elastic CloudTirez pleinement parti d'Elastic grâce à Elastic Cloud
Tirez pleinement parti d'Elastic grâce à Elastic CloudElasticsearch
 
Comment transformer vos données en informations exploitables
Comment transformer vos données en informations exploitablesComment transformer vos données en informations exploitables
Comment transformer vos données en informations exploitablesElasticsearch
 
Plongez au cœur de la recherche dans tous ses états.
Plongez au cœur de la recherche dans tous ses états.Plongez au cœur de la recherche dans tous ses états.
Plongez au cœur de la recherche dans tous ses états.Elasticsearch
 
Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]
Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]
Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]Elasticsearch
 
An introduction to Elasticsearch's advanced relevance ranking toolbox
An introduction to Elasticsearch's advanced relevance ranking toolboxAn introduction to Elasticsearch's advanced relevance ranking toolbox
An introduction to Elasticsearch's advanced relevance ranking toolboxElasticsearch
 
Welcome to a new state of find
Welcome to a new state of findWelcome to a new state of find
Welcome to a new state of findElasticsearch
 
Building great website search experiences
Building great website search experiencesBuilding great website search experiences
Building great website search experiencesElasticsearch
 
Keynote: Harnessing the power of Elasticsearch for simplified search
Keynote: Harnessing the power of Elasticsearch for simplified searchKeynote: Harnessing the power of Elasticsearch for simplified search
Keynote: Harnessing the power of Elasticsearch for simplified searchElasticsearch
 
Cómo transformar los datos en análisis con los que tomar decisiones
Cómo transformar los datos en análisis con los que tomar decisionesCómo transformar los datos en análisis con los que tomar decisiones
Cómo transformar los datos en análisis con los que tomar decisionesElasticsearch
 
Explore relève les défis Big Data avec Elastic Cloud
Explore relève les défis Big Data avec Elastic Cloud Explore relève les défis Big Data avec Elastic Cloud
Explore relève les défis Big Data avec Elastic Cloud Elasticsearch
 
Comment transformer vos données en informations exploitables
Comment transformer vos données en informations exploitablesComment transformer vos données en informations exploitables
Comment transformer vos données en informations exploitablesElasticsearch
 
Transforming data into actionable insights
Transforming data into actionable insightsTransforming data into actionable insights
Transforming data into actionable insightsElasticsearch
 
Opening Keynote: Why Elastic?
Opening Keynote: Why Elastic?Opening Keynote: Why Elastic?
Opening Keynote: Why Elastic?Elasticsearch
 
Empowering agencies using Elastic as a Service inside Government
Empowering agencies using Elastic as a Service inside GovernmentEmpowering agencies using Elastic as a Service inside Government
Empowering agencies using Elastic as a Service inside GovernmentElasticsearch
 
The opportunities and challenges of data for public good
The opportunities and challenges of data for public goodThe opportunities and challenges of data for public good
The opportunities and challenges of data for public goodElasticsearch
 
Enterprise search and unstructured data with CGI and Elastic
Enterprise search and unstructured data with CGI and ElasticEnterprise search and unstructured data with CGI and Elastic
Enterprise search and unstructured data with CGI and ElasticElasticsearch
 

More from Elasticsearch (20)

An introduction to Elasticsearch's advanced relevance ranking toolbox
An introduction to Elasticsearch's advanced relevance ranking toolboxAn introduction to Elasticsearch's advanced relevance ranking toolbox
An introduction to Elasticsearch's advanced relevance ranking toolbox
 
From MSP to MSSP using Elastic
From MSP to MSSP using ElasticFrom MSP to MSSP using Elastic
From MSP to MSSP using Elastic
 
Cómo crear excelentes experiencias de búsqueda en sitios web
Cómo crear excelentes experiencias de búsqueda en sitios webCómo crear excelentes experiencias de búsqueda en sitios web
Cómo crear excelentes experiencias de búsqueda en sitios web
 
Te damos la bienvenida a una nueva forma de realizar búsquedas
Te damos la bienvenida a una nueva forma de realizar búsquedas Te damos la bienvenida a una nueva forma de realizar búsquedas
Te damos la bienvenida a una nueva forma de realizar búsquedas
 
Tirez pleinement parti d'Elastic grâce à Elastic Cloud
Tirez pleinement parti d'Elastic grâce à Elastic CloudTirez pleinement parti d'Elastic grâce à Elastic Cloud
Tirez pleinement parti d'Elastic grâce à Elastic Cloud
 
Comment transformer vos données en informations exploitables
Comment transformer vos données en informations exploitablesComment transformer vos données en informations exploitables
Comment transformer vos données en informations exploitables
 
Plongez au cœur de la recherche dans tous ses états.
Plongez au cœur de la recherche dans tous ses états.Plongez au cœur de la recherche dans tous ses états.
Plongez au cœur de la recherche dans tous ses états.
 
Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]
Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]
Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]
 
An introduction to Elasticsearch's advanced relevance ranking toolbox
An introduction to Elasticsearch's advanced relevance ranking toolboxAn introduction to Elasticsearch's advanced relevance ranking toolbox
An introduction to Elasticsearch's advanced relevance ranking toolbox
 
Welcome to a new state of find
Welcome to a new state of findWelcome to a new state of find
Welcome to a new state of find
 
Building great website search experiences
Building great website search experiencesBuilding great website search experiences
Building great website search experiences
 
Keynote: Harnessing the power of Elasticsearch for simplified search
Keynote: Harnessing the power of Elasticsearch for simplified searchKeynote: Harnessing the power of Elasticsearch for simplified search
Keynote: Harnessing the power of Elasticsearch for simplified search
 
Cómo transformar los datos en análisis con los que tomar decisiones
Cómo transformar los datos en análisis con los que tomar decisionesCómo transformar los datos en análisis con los que tomar decisiones
Cómo transformar los datos en análisis con los que tomar decisiones
 
Explore relève les défis Big Data avec Elastic Cloud
Explore relève les défis Big Data avec Elastic Cloud Explore relève les défis Big Data avec Elastic Cloud
Explore relève les défis Big Data avec Elastic Cloud
 
Comment transformer vos données en informations exploitables
Comment transformer vos données en informations exploitablesComment transformer vos données en informations exploitables
Comment transformer vos données en informations exploitables
 
Transforming data into actionable insights
Transforming data into actionable insightsTransforming data into actionable insights
Transforming data into actionable insights
 
Opening Keynote: Why Elastic?
Opening Keynote: Why Elastic?Opening Keynote: Why Elastic?
Opening Keynote: Why Elastic?
 
Empowering agencies using Elastic as a Service inside Government
Empowering agencies using Elastic as a Service inside GovernmentEmpowering agencies using Elastic as a Service inside Government
Empowering agencies using Elastic as a Service inside Government
 
The opportunities and challenges of data for public good
The opportunities and challenges of data for public goodThe opportunities and challenges of data for public good
The opportunities and challenges of data for public good
 
Enterprise search and unstructured data with CGI and Elastic
Enterprise search and unstructured data with CGI and ElasticEnterprise search and unstructured data with CGI and Elastic
Enterprise search and unstructured data with CGI and Elastic
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (14)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

クローラーを迅速に入手:効果的なWebクローラーの作成方法

  • 2. 2 This presentation and the accompanying oral presentation contain forward-looking statements, including statements concerning plans for future offerings; the expected strength, performance or benefits of our offerings; and our future operations and expected performance. These forward-looking statements are subject to the safe harbor provisions under the Private Securities Litigation Reform Act of 1995. Our expectations and beliefs in light of currently available information regarding these matters may not materialize. Actual outcomes and results may differ materially from those contemplated by these forward-looking statements due to uncertainties, risks, and changes in circumstances, including, but not limited to those related to: the impact of the COVID-19 pandemic on our business and our customers and partners; our ability to continue to deliver and improve our offerings and successfully develop new offerings, including security-related product offerings and SaaS offerings; customer acceptance and purchase of our existing offerings and new offerings, including the expansion and adoption of our SaaS offerings; our ability to realize value from investments in the business, including R&D investments; our ability to maintain and expand our user and customer base; our international expansion strategy; our ability to successfully execute our go-to-market strategy and expand in our existing markets and into new markets, and our ability to forecast customer retention and expansion; and general market, political, economic and business conditions. Additional risks and uncertainties that could cause actual outcomes and results to differ materially are included in our filings with the Securities and Exchange Commission (the “SEC”), including our Annual Report on Form 10-K for the most recent fiscal year, our quarterly report on Form 10-Q for the most recent fiscal quarter, and any subsequent reports filed with the SEC. SEC filings are available on the Investor Relations section of Elastic’s website at ir.elastic.co and the SEC’s website at www.sec.gov. Any features or functions of services or products referenced in this presentation, or in any presentations, press releases or public statements, which are not currently available or not currently available as a general availability release, may not be delivered on time or at all. The development, release, and timing of any features or functionality described for our products remains at our sole discretion. Customers who purchase our products and services should make the purchase decisions based upon services and product features and functions that are currently available. All statements are made only as of the date of the presentation, and Elastic assumes no obligation to, and does not currently intend to, update any forward-looking statements or statements relating to features or functions of services or products, except as required by law. Forward-Looking Statements
  • 3. 本セッションの作者について • Oleksiy Kovyrin • 業界 20 年のキャリア(運用、性能、スケーラビリティにフォーカス) • Swiftype 買収により、2017年に Elastic にジョイン • Swiftype 初期エンジニアの一人 • Swiftype.com のインフラスケーラビリティと運用に注力 • Elastic ジョイン後は App Search プロダクトの Tech Lead に
  • 4. What is Swiftype? • 2012 年設立、良い検索を簡単 に • とてもよくできた Site Search プロダクト • 2017 年に Enterprise Search ソリューション構築のため Elastic と合併 • Site Search プロダクトのコア となるパワフルな Web クロー ラ
  • 5. Site Search クローラ 簡単な歴史 • 開始当初はシンプル、しかし すぐにスケーラビリティの課 題に直面 • 20142015 年に全書替え • 5年間本番運用 • 数千の Web サイトで月間 10 億超のリクエストを処理
  • 6. Search everything, everywhere Bringing the web crawler to all • Enterprise Search は App Search と Workplace Search もある • 我々のゴールは web サイト のコンテンツを、全ての Enterprise Search にイン ジェストする方法をユーザに 提供すること • アクセス可能なあらゆるソー スからコンテンツをインデック ス
  • 9. Lessons learned: 重複コンテンツ除去 • ユーザの期待はさまざま: – すでにユニークな Web ページ群をそのままインジェストするケースから – 数百、数千の重複ページを持つサイトで重複を除去する非常に複雑なメカニズムまで • 特定の Web サイト向けに重複コンテンツ除去をユーザで制御できるように数 年かけていくつもの機能を開発 • Enterprise Search クローラは、シンプルなクロール設定ルールでクロール処 理を制御する強力な機能を提供 Search results need to be unique
  • 11. Lessons learned: コンテンツの ID • 最も一般的なアプローチは URL をページの ID とする方法 Web 標準) • 実際には、うまく機能しない: – ページが移動 (名前変更) された際にコンテンツを維持する必要がある – 複数のページを、インデックス内の単一のコンテンツにグルーピングする必要がある • Enterprise Search クローラは、Swiftype で数年かけて開発された高度な URL とコンテンツ正規化、ハッシュテクニックを適用し、これらの課題を解決 Web ページの特定に何を使う?
  • 13. Lessons learned: 標準への準拠 • モダンなインターネットは、とてつもな く巨大 550B pages) • Web サイトや Web サーバ構築時に 発生しうるミスは全て、すでに実際に 起きている • クローラもいつかこれらの問題に遭 遇する 標準に準拠している人などいない Image by KC Green (kcgreendotcom.com)
  • 14. Lessons learned: 標準への準拠 • 数百万のリンクを持つ、自動生成された巨大な HTML ページ • 各ページに埋め込まれた数十 MB のインライン Javascript とCSS • "Page not found" ページのレスポンスを HTTP 200 で返す、またはインデッ クスすべき正しいページのコンテンツを 200 以外で返す • コンテンツクローキング (ユーザごとに異なるコンテンツ) • ページ内の不正な Unicode、 HTTP ヘッダ、 HTML リンク • 極端に誤った SEO 誤った meta タグ、canonical URL、リダイレクトなど) • Javascript ベースのレンダリングなどなど どんだけ壊れているの? いくつかの例
  • 15. 15 Lessons Learned: 標準への準拠 新しい Enterprise Search クローラはさまざまなビルトインのディフェン シブなメカニズムを備えていて、デフォルトで多くの問題に対応できるよう な設定となっているので、設定変更は不要、もしくは最小の変更で web サイトをインデックスできる。
  • 17. Lessons learned: クロールのライフサイクルと期間 • HTTP session state を URL に保持しているサイト (old forums, J2EE – サイト内の全リンクがユニークなリンクとなり、クロールキューのユニーク化に URL を使ってい たクローラに無限のタスクを生成していた • "Page not found" エラーページ上の相対リンクとエラーページが HTTP 200 レスポンスで返されるコンボ – 全てのリンク切れがインデックスしなければならない正当なコンテンツに、またコンテンツベー スでの重複除去テクニックで削除の対象に • プロダクトカタログのコンテンツフィルタ/ソートにURL 部分を利用 – フィルタの組み合わせによりユニークに見える URL が大量に (e.g., /dresses/color/red/size/small vs. /dresses/size/small/color/red, etc.) 遭遇した問題
  • 18. Lessons learned: クロールのライフサイクルと期間 • 現実世界は非常に複雑、 "クロール終了" の定義を複数回改訂する必要があっ た – 最も明らかな定義 ("全てのページを閲覧 ") は多くの場合、非現実的 – 今日の最新の定義は : "クロールに関するメトリックを元に、サイト内のユニークな web ページ の大多数を収集済と考えられ、クロールを継続するとリソースの無駄遣いばかりで新しいコン テンツが見つからない " (そう、長いんです! • 新しい Enterprise Search クローラは複数のヒューリスティックと設定によりク ローラの振る舞いを実用に適しユーザが調整可能 – 浅い vs 深い クロール – クロール期間と深さの上限、 URL 長と深さの上限 など – コンテンツベースの重複排除 "クロールの終了" を正しく定義することがカギ
  • 20. Lessons learned: オブザーバビリティ • 大規模、または特定のページにおける、Swiftype クローラの動作に関して詳 細なインサイトを得るために大変苦労した • Elastic ベースのオブザーバビリティ向上に投資を決断 – クローラのヘルスメトリックを Elasticsearch に記録し、 Kibana でダッシュボードに – Kibana で閲覧する End-to-end の詳細なクロールログから特定ページへとドリルダウン • 結果のデータセットはクローラのサポートに不可欠であると確証を得た • 新しい Enterprise Search クローラはこれら全てをビルトイン! – クローラの判断、アクティビティログは ECS スキーマに準拠 – 詳細なヘルス、パフォーマンスメトリック – これら全ては Kibana で即座に利用可能 クローラの動作を確認し理解しなければならない