多言語サイトにおける検索結果で、1つのコンテンツの言語の違い、という情報を持たせる形でソースを作成することができます。この手順に関して、2回に分けてソースを作成する手順を紹介していきます。
コンテンツ更新
以下のページで最新の情報を確認してください
ローカライズコンテンツのクロール
同じコンテンツを多言語で展開している場合、例えば Siteocre.com では以下のような情報があります。
- https://www.sitecore.com/whats-new
- https://www.sitecore.com/ja-jp/whats-new
どちらも新着情報ですが、英語版、日本語版という形で提供しています。一方、検索結果で言語毎の結果を出す場合、言語を切り替えることができると便利です。今回は、このようなケースでのクロールをする方法を紹介していきます。
なお、以下のページで手順は公開されています。
コンテンツの ID を決める
コンテンツの ID はデフォルトではランダムな文字列が割り当てられます。
この ID に関してはソースの設定で個別に指定することができます。この値はもちろんユニークである必要があるため、URL を利用して Document Extractors の JavaScript で ID を作成します。
URL から ID を作成するために、以下のコードを追加します。
JavaScript
function extract(request, response) {
$ = response.body;
let url = request.url;
// URL から id を作成する
let id = url.replaceAll('/', '_').replaceAll(':', '_').replaceAll('.', '_');
そして返す値に対しては、以下の id のコードを1行追加してください。
JavaScript
return [{
'id': id,
これで保存をして、改めてソースの取得を実行します。
クロールの結果を確認する
しばらくすると、ソースがアップデートされて、クロールおよびインデックス化が完了します。
id が URL ベースになっているのを確認しました。
まとめ
今回は URL を利用して id を作成するようにしました。次回はロケールの部分を削除して、1つの ID に対して複数言語のコンテンツの情報を入れて、多言語での検索に対応できるデータを作成していきます。