ローカライズされた高度なウェブクローラーの設定
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このウォークスルーでは、ソースをローカライズされたコンテンツのクロールとインデックス化に設定する方法を学びます。これには利用可能なローカの設定、ローカレエクストラクターの設定、同じコンテンツのローカライズされたバージョンが同じIDを共有することの確認が含まれます。
!重要クロール可能なアイテムのローカライズ版をインデックスするには、高度なウェブクローラーのみが使えます。
このウォークスルーでは、以下の方法を説明します:
- クローラーを作成してください
- クローラーのスコープを設定する
- サイトマップトリガーの設定
- 利用可能なロケーションの設定
- JavaScript locale extractorの設定
- ローカライズされたコンテンツ用にJavaScriptドキュメントエクストラクタを設定する
- クローラースケジューラを作成する
- ソースへの更新を公開してください:::
!注元のコンテンツがクローラーアクセスする前に認証が必要な場合は、クローラー認証設定を設定してください。例えば、元のコンテンツにはGUIベースのユーザー名やパスワード、リクエストヘッダー内のアクセストークンやキーが必要かもしれません。これはソース作成後いつでも可能です。
クローラーを作成してください
ローカライズされたアイテムをインデックスするには、高度なウェブクローラーが必要です。すでに標準的なウェブクローラーを持っている場合は、それを高度なウェブクローラーに変換できます。
新しい高度なウェブクローラーを作成するには:
- メニューバーで Sources をクリックし> **「ソースを追加」**をクリックします。
- SOURCE NAMEフィールドにソースの名前を入力します。例えば、Doc site web crawlerと入力します。
- DESCRIPTIONフィールドで、設定したいソースを数行入力してください。例えば、Web crawlerと入力してドキュメントサイトの全ページをクロールします。
- CONNECTORフィールドで、作成したいソースの種類として「Advanced web crawler」をクリックしてください。
- Click Save。エラーがなければ、Searchは新しいソースを作成します。
ソースを作成したら、そのソースをコンテンツへのアクセスとインデックス 化に設定 してください。
クローラーのスコープを設定する
クローラーの設定を設定し、ウェブクローラーの範囲を定義する重要な高レベル設定を定義します。
高度なウェブクローラーの範囲を設定するには:
-
ソースSettingsページで、Advanced Web Crawler Settingsの横にある「
編集」をクリックしてください。 -
オプションで、ALLOWED DOMAINS欄でクローラーがその中に残るドメインを入力します。これを行うことで、ウェブクローラーがSitecoreドキュメントドメインのみをクロールし、リンクされる可能性のある外部サイトはクロールしません。
例えば、ウェブクローラーが外部サイトをクロールせず、ドキュメントドメインのみSitecoreクロールするようにするために、www.doc.sitecore.comを入力してください。
-
クローラーがクロールするURLの深さと数を設定するには:
-
最大深度フィールドで、クローラーがURL間進んでほしい最大レベル数を入力します。
例えば、クローラーをメインページの子ページに限定するには、1を入力してください。
-
MAX URLsフィールドには、クローラーがクロールできる最大URL数を入力します。クローラーが抜け落ちないURLを確実にするために大きな数を入力してください。
例えば、5000を入力するとします。
-
-
特定のURLパターンをクローラーの範囲から除外するには、「 除外パターンを追加」をクリックします。次に、TYPEドロップダウンメニューでGlob式 または 正則表現を選択します。 VALUEフィールドで、除外するURLを一致させる式を入力します。
例えば、クローラーが検索ページをクロールするのを防ぐには、以下のGlob式を入力してください:
**/search/**
-
並列にクロールするワーカー数の設定と、リクエスト間のオプションの遅延設定:
-
PARALLELISM (WORKERS) ドロップダウンメニューの値をクリックして、同時にクロールしコンテンツをインデックスするスレッド(ワーカー)の数を定義できます。
例えば、2を入力して2のワーカーだけを並列にクロールできるようにします。これはデフォルトの5ワーカーよりも少ないメモリを使用します。
-
オプションで、ワーカーを1つだけ設定している場合は、クローラーが次のインデックス対象URLにアクセスするまでの待機時間を定義できます。これを行うには、DELAY(MS) フィールドで時間をミリ秒単位で入力します。
例えば、3を入力します。
-
-
TIMEOUTフィールドには、クローラーが応答を待つ時間(ミリ秒単位)を入力します。
例えば、5000を入力してください。これにより、クローラーはクロールするすべてのURLから応答を得るために5000ミリ秒、つまり5秒間待つことになります。
-
オプションでヘッダーを追加するには「 Add Header」をクリックしてください。次に、Keyフィールドにコンテンツが期待するユーザーエージェントの名前を入力します。 Valueフィールドに、コンテンツが期待するユーザーエージェントの値を入力してください。このセキュリティ対策により、Searchクローラーのみがデータをクロールでき、他のクローラーは行えません。
例えば、キーにuser-agent、値にsitecorebotを入力します。
-
クローラーがナビゲーションクッキーを受け入れないようにするには、「 クロール中にナビゲーションクッキーを有効にする」をオフにしてください。
複数のロケーションでコンテンツをインデックスする際は、クッキーの受け入れを無効にすることが重要です。これは、クッキーがクローラーを最初に遭遇するロケーションに限定し、すべてのロケーションでコンテンツをインデックスできない可能性があるためです。
-
オプションで、クローラーがページのソースに加えてページ上のJavaScriptを待機してクロールしたい場合は、「追加Settings」セクションで**「Render JavaScript**」をオンにしてください。
-
Click Save。
サイトマップトリガーの設定
トリガーはクローラーにインデックスするコンテンツを探す出発点を提供します。
サイトマップまたはサイトマップインデックストリガーの設定:
-
ソースSettingsページでトリガーの横
編集****をクリックしてください。 -
Click
トリガーを追加してください。 -
トリガータイプのドロップダウンメニューでは:
- サイトマップをお持ちなら、「 **Sitemap」**をクリックしてください。
- サイトマップのインデックスをお持ちの場合は、「 サイトマップインデックス」をクリックしてください。
-
TIMEOUTフィールドには、クローラーが応答を待つまでの時間をミリ秒単位で入力してください。サイトマップの読み込みに非常に時間がかかるため、クローラーが最大待機秒数に達したときにタイムアウトしたくないので、大きな数字を入力してください。
例えば、10000を入力するとします。
-
URL欄で「追加アイテム」をクリックし
、サイトマップまたはサイトマップインデックスのURLを入力します。例えば、*https://www.sitecore.com/sitemap.xml*を入力します。
-
Click Save。
利用可能なロケーションの設定
利用可能なローカレを設定し、このソースで使いたいドメイン言語のサブセットを定義します。
例えば、英語(アメリカ)、フランス(フランス)、日本語(日本)をロケーションにしたい場合です。クローラーは英語(アメリカ)をデフォルトのローカリストに追加しますが、フランス語(フランス)と日本語(日本)も追加しなければなりません。
!重要安定した取り込みを確保するために、クローラーソースごとに40か所を超えないようにしてください。
ロケーションの設定:
-
ソースSettingsページで、利用可能なロケーションの横
「編集」をクリックしてください。 -
Available Localesページで、LOCALESフィールド内の中をクリックして、このドメインで利用可能なロケーションのリストを確認し、その後、このソースで希望するロケーションをクリックしてください。
例えば、fr_frをクリックしてja_jp。
-
Click Save。
JavaScript locale extractorの設定
ローカーエクストラクタを設定し、クローラーがクロールする各URLからローカーをどのように抽出するかを定義します。
!重要エクストラクタロジックでは、ローカー形式はAvailable Localesのローカ形式と一致しなければなりません。つまり、${language}_${country} または ${language}-${country}。
この例では、JavaScript関数を使ってこのルールを定義します。
!注URLエクストラクタ(REGEXを使った)やヘッダーエクストラクタの設定も可能です。
JavaScriptローカーエクストラクタの設定:
-
Source Settingsページで、Locale Extractorsの横にある「
Edit」をクリックしてください。 -
ローカルエクストラクタを作成するには、Locale Extractorsページで:
-
名前欄に抽出器の意味のある名前を入力します。
例えば、JSのローカ Sitecore.com エクストラクターを入力します。
-
Extractor Typeのドロップダウンメニューで**、JS**をクリックします。
-
-
JSソースフィールドで、Cheerio構文でJS関数を入力してロケートを抽出します。
以下はロケールを抽出するためのJavaScript関数のサンプルです:
function extract(request, response) { locales = 'fr-fr','ja-jp'; for (idx in locales) { locale = localesidx; if (request.url.indexOf('/' + locale + '/') >= 0) { return locale.toLowerCase().replace('-','_'); } } return "en_us"; }
関数は次の論理を用いています:
- ページURLにロケージがある場合は、ページのURLからロケールを取得し、小文字かつ下線付きでフォーマットします。このフォーマットは、 **利用可能なローカ(Availableローカ)**のロケートフォーマット、すなわち fr_fr と ja_jpと一致しなければならないため重要です。
- ページURLにロケージがない場合は、インデックス文書にデフォルトのロケージを割り当て en_us。
-
Click Save。
ローカライズされたコンテンツ用にJavaScriptドキュメントエクストラクタを設定する
高度なウェブクローラーで抽出したい属性を指定するドキュメントエクストラクタを設定してください。ローカライズされたコンテンツがあれば、IDに加えて必要な他の属性も設定してください。これは、同じコンテンツのローカライズされたバージョンが同じIDを共有するようにするためです。
この例では、JavaScriptを使ってid、type、title、subtitle、productの属性を抽出します。
ローカライズされたコンテンツ用のJavaScriptドキュメントエクストラクタを設定するには:
-
ソースSettingsページで、ドキュメント抽出器の横
「編集」をクリックしてください。 -
ドキュメントエクストラクターを作成するには、ドキュメントエクストラクター のページで:
-
名前欄に抽出器の意味のある名前を入力します。
例えばSitecore言語 の場合です。
-
Extractor Typeのドロップダウンメニューで**、JS**をクリックします。
-
-
タグ付けセクションで「タグ付け追加」をクリックします。
タグエディターには、説明、名前、タイプ、image_url*、URL*属性を返すサンプルJavaScript関数が見られます。Search設定の助けとしてこのサンプルを提供しています。
-
ローカライズされたコンテンツを有効にするには、ローカライズド スイッチをオンにしてください。
-
タグエディターで、属性値を返すJavaScript関数を貼り付けます。 同じ コンテンツのローカライズされたバージョン間でid属性の値が一定であることを確認しましょう。
関数はCheerio構文を使用し、オブジェクトの配列を返さなければなりません。
例えば、次のコードを貼り付けます:
function extract(request, response) { $ = response.body; url = request.url; locales = '/fr-fr/', '/ja-jp/'; for (idx in locales) url = url.replace(localesidx, '/'); id = url.replaceAll('/', '_').replaceAll(':', '_').replaceAll('.', '_'); return { 'id': id, 'type': $('metaname="type"').attr('content') || 'Others', 'title': $('h1').text(), 'subtitle': $('metaname="description"').attr('content') || $('sectiondata-component-name="Hero Banner" divclass*="side-content">div>p, header div.lead p').text(), 'product': $('metaname="product"').attr('content') }; }
コードは以下のロジックを使って属性値を取得します:
- id - ローカネを無視してURLからこれを取得します。URLからIDを生成するには、まずローカレをスラッシュ(/)に置き換えます。次に、URL内のすべてのスラッシュ(/)、点(.)、コロンをアンダースコア(_)に置き換えます。
- type - 最初の タグの内容を使用する。そのタグが存在しない場合は 、他のタグを使いましょう。
- title - タグ
HTMLテキストを優先してください。
日本語翻訳に関する免責事項このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
- subtitle- 最初のmeta name="type"タグの内容を使う。このタグが存在しない場合は、最初のsectionのテキストのテキストに <data-component-name="Hero Banner"> タグを付けて使用してください。
- product - 最初の タグの内容を使うこと。
-
タグ 編集 ウィンドウで「 保存」をクリックします。次に「 ドキュメント抽出器 」ページで「 保存」をクリックします。
クローラースケジューラを作成する
クローラースケジュールを作成するには:
-
メニューバーで「 Sources」をクリックしてください。
-
クロールをスケジュールしたいソースをClickしてください。
-
ソースSettingsページで、クローラースケジューラーの横
編集をクリックしてください。 -
Searchでスケジュールクロールを開始したいタイミングを設定するには、STARTSドロップダウンメニューの値をクリックしてください。スケジュールをできるだけ早く開始したい場合は 、「いつでも」を選択してください。特定の日付からクロールを開始したい場合は、「 Specific Date」をクリックし、日付選択機能で日付をクリックしてください。
-
定期的なスケジュールでクロールを実行させるには、REPEATドロップダウンメニューで 「はい」をクリックします。
!ヒント将来の日に一度だけクロールをスケジュールするには、REPEATドロップダウンメニューで「 **DOES NOT REPEAT」**をクリックしてください。この設定では、ステップ4で選択した日にクロールが発生し、繰り返しません。
-
クロールの頻度を定義するには、「 Repeats every field」の横にある値をクリックしてください。 1から99までの任意の値を間隔として、日数、週、または( 生産 ドメインのみ) 時間 単位をクリックできます。例えば、4週間ごとにクロールを実行したい場合は、4と 週をクリックしてください。
-
クロール開始時間を定義するには、RUN TIMEドロップダウンメニューの値をクリックしてください。例えば、クロールを深夜0時に開始したい場合は12:00 AMをクリックしてください。表示される時間は自動的にあなたのタイムゾーンに合わせて調整されます。
-
クローラースケジュールの終了時間を設定するには、END DATEドロップダウンメニューの値をクリックしてください。スケジュールを無期限に継続したい場合は「 Never」を選択してください。特定の日付でクロールを終了させたい場合は、「 Specific Date」をクリックし、日付ピッカーで日付をクリックしてください。
-
Click Save。
ソースへの更新を公開する
最初のスキャンとインデックスを始めるには、必ずソースを 公開 してください。
情報源を公開するには:
- メニューバーで「 Sources」をクリックしてください。
- 公開したいソースをClickで「 公開」をクリックします。
- ソース公開ダイアログで、このソースの再クロールをSearchしたい場合は、「公開後にソース再クロールをトリガー」チェックボックスを選択してください。
- Click Publish。