Sitecore Search - 複数言語のコンテンツインポート(前編)

公開日 :

多言語サイトにおける検索結果で、1つのコンテンツの言語の違い、という情報を持たせる形でソースを作成することができます。この手順に関して、2回に分けてソースを作成する手順を紹介していきます。

ローカライズコンテンツのクロール

同じコンテンツを多言語で展開している場合、例えば Siteocre.com では以下のような情報があります。

  • https://www.sitecore.com/whats-new

  • https://www.sitecore.com/ja-jp/whats-new

どちらも新着情報ですが、英語版、日本語版という形で提供しています。一方、検索結果で言語毎の結果を出す場合、言語を切り替えることができると便利です。今回は、このようなケースでのクロールをする方法を紹介していきます。

なお、以下のページで手順は公開されています。

コンテンツの ID を決める

コンテンツの ID はデフォルトではランダムな文字列が割り当てられます。

random desc

この ID に関してはソースの設定で個別に指定することができます。この値はもちろんユニークである必要があるため、URL を利用して Document Extractors の JavaScript で ID を作成します。

URL から ID を作成するために、以下のコードを追加します。

function extract(request, response) {
    $ = response.body;

    let url = request.url;

    // URL から id を作成する
    let id = url.replaceAll('/', '_').replaceAll(':', '_').replaceAll('.', '_');    

そして返す値に対しては、以下の id のコードを1行追加してください。

    return [{
        'id': id,

これで保存をして、改めてソースの取得を実行します。

クロールの結果を確認する

しばらくすると、ソースがアップデートされて、クロールおよびインデックス化が完了します。

random desc

id が URL ベースになっているのを確認しました。

まとめ

今回は URL を利用して id を作成するようにしました。次回はロケールの部分を削除して、1つの ID に対して複数言語のコンテンツの情報を入れて、多言語での検索に対応できるデータを作成していきます。