1. インデックス作成を構成する

ローカライズされた高度なWebクローラーを構成する

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このチュートリアルでは、ローカライズされたコンテンツをクロールしてインデックスを作成するようにソースを構成する方法について説明します。これには、使用可能なロケールの構成、ロケール抽出器の構成、同じコンテンツのローカライズされたバージョンが同じIDを共有することの確認が含まれます。

大事な

クロール可能なアイテムのローカライズされたバージョンのインデックスを作成するには、高度なWebクローラーのみを使用できます。

このチュートリアルでは、次の方法について説明します。

メモ

元のコンテンツがクローラがアクセスする前に認証が必要な場合は、クローラー認証設定を構成します。たとえば、元のコンテンツには、GUIベースのユーザー名とパスワード、または要求ヘッダーのアクセス トークンまたはキーが必要になる場合があります。これは、ソースの作成後いつでも実行できます。

クローラーを作成する

ローカライズされたアイテムのインデックスを作成するには、高度なWebクローラーが必要です。標準のWebクローラーをすでにお持ちの場合は、高度なWebクローラーに変換できます。

新しい高度なウェブクローラーを作成するには:

  1. メニュー バーで、Sources > Add Sourceをクリックします。

  2. SOURCE NAMEフィールドに、ソースの名前を入力します。たとえば、「Doc site web crawler」と入力します。

  3. DESCRIPTIONフィールドに、構成するソースを説明する行を数行入力します。たとえば、「Web crawler to crawl all pages of the doc site」と入力します。

  4. CONNECTORフィールドで、作成するソースのタイプとしてAdvanced web crawlerをクリックします。

  5. Click Save。エラーがない場合、Searchは新しいソースを作成します。

ソースを作成したら、コンテンツにアクセスしてインデックスを作成するようにソース を設定します

クローラーのスコープを構成する

クローラー設定を構成して、Webクローラーの有効範囲を定義する重要な高レベルの構成を定義します。

高度なWebクローラーのスコープを構成するには:

  1. Source Settingsページで、Advanced Web Crawler Settingsの横にある Editをクリックします。

  2. 必要に応じて、ALLOWED DOMAINSフィールドに、クローラーが保持するドメインを入力します。これは、WebクローラーがSitecoreドキュメント ドメインのみをクロールし、リンクされている可能性のある外部サイトをクロールしないようにするために行います。

    例えば、WebクローラーがSitecoreドキュメント・ドメインのみをクロールし、リンクされている可能性のある外部サイトはクロールしないようにするには、「www.doc.sitecore.com」と入力します。

  3. クローラーがクロールするURLの深さと数を設定するには:

    • MAX DEPTHフィールドに、クローラーがURLにたどるレベルの最大数を入力します。

      たとえば、クローラーをメインページの子ページに制限するには、「1」と入力します。

    • MAX URLSフィールドに、クローラーがクロールするURLの最大数を合計で入力します。クローラーがURLを省略しないように、大きな数値を入力します。

      たとえば、「5000」と入力します。

  4. クローラーがナビゲーションCookieを受け入れないようにするには、ENABLE NAVIGATION COOKIES DURING CRAWLINGをオフにします。

    複数のロケールでコンテンツをインデックス化する場合は、Cookieの受け入れを無効にすることが重要です。これは、Cookieによってクローラーが最初に検出されたロケールに制限され、クローラーがすべてのロケールでコンテンツにインデックスを付けない可能性があるためです。

  5. Click Save

サイトマップ トリガーを設定する

トリガーは、インデックスを作成するコンテンツを検索するための開始点をクローラーに提供します。

使用可能なロケールを構成する

使用可能なロケールを設定して、このソースに使用するドメイン言語のサブセットを定義します。

たとえば、ロケールとして英語 (米国)、フランス語 (フランス)、日本語 (日本) を使用します。クローラーは英語 (米国) を既定のロケールとして追加しますが、フランス語 (フランス) と日本語 (日本) を追加する必要があります。

大事な

安定した取り込みを確保するには、クローラー ソースごとに10個を超えるロケールを含めないでください

ロケールを設定するには:

  1. Source Settingsページで、Available Localesの横にある Editをクリックします。

  2. Available Localesページで、LOCALESフィールド内をクリックして、このドメインで使用可能なロケールのリストを表示し、このソースに使用するロケールをクリックします。

    たとえば、fr_frをクリックしてja_jpとします。

  3. Click Save

JavaScriptロケール抽出器を構成する

ロケール抽出器を構成して、クローラーがクロールする各URLからロケールを抽出する方法を定義します。

大事な

エクストラクタロジックでは、ロケール形式はAvailable Localesのロケール形式と一致する必要があります。つまり、${language}_${country} または ${language}-${country}です。

この例では、JavaScript関数を使用してこのルールを定義します。

手記

URL抽出器 (REGEXを使用) またはヘッダー抽出器を構成することもできます。

JavaScriptロケール抽出器を設定するには:

  1. Source Settingsページで、Locale Extractorsの横にある Editをクリックします。

  2. ロケール抽出器を作成するには、Locale Extractorsページで次の操作を行います。

    • Nameフィールドに、抽出器のわかりやすい名前を入力します。

      たとえば、「 Sitecore.com JS locale extractor」と入力します。

    • Extractor Typeドロップダウンメニューで、JSをクリックします。

  3. JS Sourceフィールドに、Cheerio構文のJS関数を入力してロケールを抽出します。

    ロケールを抽出するためのサンプルJavaScript関数を次に示します。

    function extract(request, response) {
        locales = ['fr-fr','ja-jp'];
        for (idx in locales) {
            locale = locales[idx];
            if (request.url.indexOf('/' + locale + '/') >= 0) {
                return locale.toLowerCase().replace('-','_');
            }
        }
        return "en_us";
    }

    この関数は、次のロジックを使用します。

    • ページURLにロケールがある場合は、ページのURLからロケールを取得し、小文字とアンダースコアで書式設定します。この書式設定は、Available Localesのロケール書式設定、つまりfr_frja_jpのロケール書式と一致する必要があるため、重要です。

    • ページURLにロケールがない場合は、インデックスドキュメントにデフォルトのロケールen_usを割り当てます。

  4. Click Save

ローカライズされたコンテンツ用のJavaScriptドキュメント抽出器を設定する

ドキュメント抽出器を構成して、拡張Webクローラーで抽出する属性を指定します。ローカライズされたコンテンツがある場合は、必要な他の属性に加えてidを構成します。これは、同じコンテンツのローカライズされたバージョンが同じIDを共有するようにするためです。

この例では、JavaScriptを使用して、idtypetitlesubtitle、およびproduct 属性を抽出します。

ローカライズされたコンテンツ用にJavaScriptドキュメント抽出器を設定するには:

  1. Source Settingsページで、Document Extractorsの横にある Editをクリックします。

  2. ドキュメント抽出ツールを作成するには、Document Extractorsページで次の操作を行います。

    • Nameフィールドに、抽出器のわかりやすい名前を入力します。

      例えばSitecore with languages

    • Extractor Typeドロップダウンメニューで、JSをクリックします。

  3. Taggersセクションで、Add Taggerをクリックします。

    タグエディターには、descriptionnametypeimage_urlおよびurl属性を返すサンプルJavaScript関数が表示されます。Searchでは、構成に役立つこのサンプルを提供しています。

  4. ローカライズされたコンテンツを有効にするには、Localizedスイッチをオンにします。

  5. タグ エディターで、属性値を返すJavaScript関数を貼り付けます。 id属性の値が、同じコンテンツのローカライズされたバージョン間で一定であることを確認します。

    この関数はCheerio構文を使用し、オブジェクトの配列を返す必要があります。

    たとえば、次のコードを貼り付けます。

    function extract(request, response) {
        $ = response.body;
        url = request.url;
        locales = ['/fr-fr/', '/ja-jp/'];
        for (idx in locales) url = url.replace(locales[idx], '/');
        id = url.replaceAll('/', '_').replaceAll(':', '_').replaceAll('.', '_');
        return [{
            'type': $('meta[name="type"]').attr('content') || 'Others',
            'title': $('h1').text(),
            'subtitle': $('meta[name="description"]').attr('content') || $('section[data-component-name="Hero Banner"] div[class*="side-content"]>div>p, header div.lead p').text(),
            'product': $('meta[name="product"]').attr('content'),
        }];
    }

    このコードでは、次のロジックを使用して属性値を取得します。

    • id - ロケールを無視した後、これをURLから取得します。URLからIDを生成するには、まずロケールをスラッシュ (/) に置き換えます。次に、URL内のすべてのスラッシュ(/)、ドット(.)、コロンをアンダースコア(_)に置き換えます。

    • type - 最初の <meta name="type"> タグのコンテンツを使用します。このタグが存在しない場合は、otherを使用します。

    • title - テキストfirst <h1> HTMLタグを使用します。

    • subtitle- 最初のmeta name="type"タグのコンテンツを使用します。このタグが存在しない場合は、最初のsection<div class="side-content">のテキストを<data-component-name="Hero Banner">タグで使用します。

    • product - 最初の <meta name="product"> タグのコンテンツを使用します。

  6. Edit Taggersウィンドウで、Saveをクリックします。次に、Document ExtractorsページでSaveをクリックします。

クローラースケジューラを作成する

ソースへの更新の発行

最初のスキャンとインデックスを開始するには、ソースを 公開 する必要があります。

この記事を改善するための提案がある場合は、 お知らせください!