SITECORE MANIA 開発者向け技術ブログ

その他

藤本

藤本

Sitecore Search(サイトコアサーチ)について

本記事では、Sitecore Searchの概要から基本的な設定方法までを紹介します。

Sitecore Searchとは

Sitecore Searchは、予測可能でパーソナライズされた検索エクスペリエンスを作成するために設計された、AI主導のヘッドレスコンテンツおよび製品発見プラットフォームです。
このプラットフォームは、匿名の訪問者インタラクショントラッキングを使用してパーソナライズされた検索とrecommendationsを提供し、リアルタイムのビジネスルール分析とオムニチャネルのパーソナライゼーションにより顧客エンゲージメントを強化します。
また、Sitecore Searchは、CMSからコンテンツ情報を収集するのではなく、WebクローラーやAPIクローラーなどの多様なデータソースから収集し、インデックスを作成する機能を提供しています。
これにより、さまざまな形式のデータを検索可能にし、ユーザーに対して一貫した検索体験を提供します。

実装方法

Sitecore Searchの実装方法は、以下の3つです。

  • Search JS SDK for React:ReactベースのフロントエンドアプリケーションにSitecore Searchを組み込むためのSDKです。
  • JS Data パッケージ:JavaScriptアプリケーションからSitecore Search APIにアクセスするためのデータパッケージです。
  • APIエンドポイントにリクエストを送信する:Sitecore Search APIに対してリクエストを送信し、検索結果を取得するための方法です。

設定方法

属性の設定

エンティティを選択する

エンティティとは、Sitecore Searchが検索対象とするコンテンツの構造を定義するテンプレートのことです。 コンテンツの種類に応じて適切なエンティティを選択することで、検索インデックスの効率性や検索結果の精度を高めることができます。 Sitecore Searchには、以下の4つのエンティティがデフォルトとして用意されているので、実装の要件と合致するエンティティを選択します。

  • Contentエンティティ:標準的なテンプレートです。
  • Productエンティティ:ECサイトの商品情報に適したテンプレートです。
  • Categoryエンティティ:商品カテゴリやコンテンツカテゴリなどの分類情報に適したテンプレートです。
  • Storeエンティティ:店舗情報に適したテンプレートです。

これらのデフォルトのエンティティで要件を満たせない場合、ニーズに合わせてオリジナルのエンティティを作成することも可能です。

属性の設定をする

属性とは、各エンティティに関連する特定の情報のことを示します。例えば、Productエンティティには「商品名」や「商品価格」などが属性として定義されています。 Sitecore Searchでは、選択したエンティティに構成されている属性を使用して、インデックスドキュメントを作成します。 属性の設定の一部として、以下の項目があります。

  • Entity:どのエンティティに属する属性化を示します。
  • Display Name:管理画面などで表示される名称を示します。
  • Attribute Name:インデックスドキュメント内で使用される属性名を示します。
  • Data Type:属性のデータ型を示します。
  • Properties:属性の追加情報を示します。(例えば、APIレスポンスに含むかやファセットとして使用するかどうかなど)

これらの属性を適切に設定することで、検索の精度やフィルタリングのオプションを向上させることができます。 もし選択したエンティティで定義されている属性だけで足りない場合は、属性を追加することも可能です。

ソースの設定

クローラーの選択

Sitecore Searchは、さまざまなデータソースからコンテンツを収集し、検索インデックスを構築します。 そのためのツールがクローラーです。以下の4種類のクローラーから、コンテンツの取得元と形式に合わせて適切なものを選択します。

  • Web クローラー
    公開されているWebサイトのコンテンツをクロールしてインデックスを作成します。一般的なWebサイトの検索に利用されます。
  • Advanced Web クローラー
    Webクローラーよりも詳細な設定や複雑なクロール要件に対応できます。特定の要素の除外や、認証が必要なページのクロールなどが可能です。
  • API クローラー
    RESTful APIを介してコンテンツを取得し、インデックスを作成します。特定のデータソースからの情報を検索可能にするのに適しています。
  • フィード クローラー
    RSSフィードやAtomフィードなどのフィード形式からコンテンツを取得し、インデックスを作成します。

ソースの設定

※ 以下の設定はAdvanced Web クローラーの設定です。選択するクローラーによって設定項目は異なります。

  1. クローラーの設定
    クロールの対象となるURLなどを設定します。設定の一部として、以下の項目があります。
    • Allowed Domains:対象のドメイン
    • Max Depth:クロールするリンクの深さ
    • Max URLS:インデックスするURLの最大数
    • Exclusion Patters:対象外のURL
    • Render JavaScript:クローラーがページ上にJavaScriptをレンダリングするかどうか
  2. トリガーの設定
    Sitecore Searchのクロール元を設定します。クロール先は以下の3つから選択します。
    • sitemap.xml
    • JavaScript
    • APIエンドポイントにリクエストを送信する
  3. ドキュメント抽出器の設定
    取得したデータをどのようにインデックスドキュメントにマッピングするかを設定します。
    以下の3つから選択します。
    • XPath
    • JavaScript
    • CSS式
  4. クローラースケジュールの設定
    定期的にクロールを実行するためのスケジュールを設定をすることができます。
    これにより、最新のコンテンツを常にインデックスに反映させることが可能となります。

その他、クロール先のサイトの認証情報や、クロールするページの除外ルールなども設定できます。

確認方法

Sitecore Searchの実装と設定が完了したら、以下の方法で動作を確認します。

  • 管理画面で確認
    Sitecore Searchの管理画面から、インデックスされたドキュメントの内容を確認できます。これにより、意図したデータが正しく取り込まれているかを確認できます。
    例として、下記のキャプチャにLYZONのサイト(https://www.lyzon.co.jp/)をクロールした結果の一部を示します。

  • クローラーログの確認
    クロールしたURLに対してそれぞれクロールが成功したか、スキップされたか、失敗したかの把握ができます。スキップや失敗の場合の原因を把握することが可能です。
  • APIリクエストの実行
    Sitecore Searchの管理画面上で実際に検索クエリを実行することができます。
    例として、下記にキャプチャを示します。APIが期待通りに動作しているか、レスポンス内容にエラーがないかなど、詳細な結果が確認できます。


以上となります。ご参考にしていただけると幸いです。
最後まで読んでいただきありがとうございました。

参考文献



※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。

この記事を読んだ人はこちらの記事も読んでます

Sitecore導入に関するご相談・資料ダウンロード

導入をご検討・ご依頼の方や、サービスについてご不明点がございましたらお気軽にお問い合わせください。

Sitecoreの運用問題を解決する

既にSitecoreを導入しているお客様向けサービス