---
title: "ローカライズされたコンテンツにはローカレエクストラクターを使います"
slug: "use-locale-extractors-for-localized-content"
abstract: "Sitecore Searchクローラーを設定する際のローカライズコンテンツの扱い方の説明。"
---
# ローカライズされたコンテンツにはローカレエクストラクターを使います

一部のSitecore Searchソースでローカライズされたコンテンツをインデックス化できます。ローカライズされたコンテンツをインデックスするには、英語(米国)(*en-US*)や日本(*日本語)(ja-JP)*などのcontent itemのロケージを抽出し、同じコンテンツのローカライズ版の共通IDを作成します。そして、実行時にローカレコンテキストを指定することで、サイト訪問者にローカレ固有のコンテンツを表示できます。

ローカライズされたコンテンツをインデックスするには、[利用可能なローカレ](https://doc.sitecore.com/search/ja/users/search-user-guide/index-items/additional-configurations-and-settings/configure-a-localized-advanced-web-crawler.html#UUID-b3f1ae10-b13c-e6eb-f5b9-cb5061941b2f_section-idm4560251519134433515966573438 "Configure available locales") を定義し、ローカレエクストラクターを設定する必要があります。

> !注すべてのソースがすべての設定を提供しているわけではありません。特定のソースがどのような構成を持っているか知りたい場合は、そのソースのウォークスルーや、[どのソースを使うかのトピック](https://doc.sitecore.com/search/ja/users/search-user-guide/index-items/additional-configurations-and-settings/identify-the-required-source-type.html "Identify the required source type")をご覧ください。

## コンテンツのローカライズ版が同じIDを共有すること

ローカライズされたコンテンツのソースを作成する際は、同じcontent itemsのローカライズ版のインデックスドキュメントが同じIDを共有していることを確実にしなければなりません。つまり、ローカライズされたコンテンツがある場合に*id*属性の抽出方法を明示的に設定する必要があります。

例えば、御社の*About Us*ページは英語(米国)を含む6つのロケーションで利用可能です。 *ID*属性の抽出方法を設定しないと、Search 6 *About Us*インデックスドキュメントごとに6つの異なるIDが生成されます。これはインデックスドキュメントのIDを使う設定時に問題を引き起こします。例えば、多くのピンルールは特定のIDを持つcontent itemを特定のスロットにピン留めすることに基づいています。 *About Us*をピン留めしたい場合、英語(米国)版のIDを使うと、英語(米国)のロケーションのユーザーだけがピン留めcontent item見えます。他の5つの地域のユーザーは、*About Us*のローカライズ版がピン留めされているのを見ません。この問題を避けるために、同じコンテンツのローカライズ版が同じIDを持つことを必ず確認してください。

## Locale抽出器

Sitecore Searchでは、ソースをクロールしてローカライズしたコンテンツのインデックス化を設定する際に、各インデックスドキュメントのメタデータにローコールを追加する必要があります。これを行うには、[ローカレエクストラクター](https://doc.sitecore.com/search/ja/users/search-user-guide/index-items/additional-configurations-and-settings/configure-a-localized-advanced-web-crawler.html#UUID-b3f1ae10-b13c-e6eb-f5b9-cb5061941b2f_section-idm1823351772155370 "Configure a JavaScript locale extractor")を設定してください。

クローラーがcontent itemからロケート情報を抽出する方法を定義するために、以下の設定を設定してください:

Settings

概要

名称

ロケージエクストラクターの意味のある名称です。

エキストラクタータイプ

使いたいローコールエクストラクターの種類。使えるのはURL - 正規表現で各ページのURLからローコールを抽出したいときにこのローカルエクストラクターを使う。ヘッダー - header.JSからローカを取り出したいときにこのエクストラクターを使う - 各ページのURLからローカを抽出したい場合JavaScriptこのエクストラクターを使う。

一致するURLを

このエクストラクタとそのルールが適用されるURLを定義するパターンです。正規表現やグロブ式を使用できます。このフィールドを使って、ソースコンテンツの異なる領域ごとに異なるエクストラクタを作成できます。これは任意の設定です。

## JavaScript locale extractor

各ページからローカレを抽出するJS関数を追加してください。

定義したJavaScript関数は以下の条件でなければなりません:

-   [Cheerio](https://cheerio.js.org/)の構文を使いましょう。つまり、次のフォーマットを使わなければなりません:
    
    function extract(request, response) {
     $ = response.body;
    }
    
-   オブジェクトの配列を返します。
    

## ヘッダーロカリクチャ

ローケールとして使いたいvalueのヘッダーkeyを追加します。高度なウェブクローラーがリクエストヘッダーでこのキーを見つけられなければ、レスポンスヘッダーで探します。

例えば、*ヘッダーにAccept-Language*を追加すると、クローラーはkey *Accept-Language*を探し、その文書のロケージとしてvalueを使用します。リクエストヘッダーが*Accept-Language: es-ES*の場合、インデックス文書は*es-ES* (スペイン、スペイン)文書としてタグ付けされるメタデータを持っています。