提案の追加

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

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

widget.items.search.suggestionオブジェクトを追加して、ユーザークエリのオートコンプリートや予測検索結果の表示に使用できる候補を取得できます。

メモ

提案をリクエストする前に、管理者がSitecore SearchでSuggestion Blocksを設定していることを確認してください。

このオブジェクトのデータモデルについては、Search and Recommendation APIリファレンスを参照してください。

キーフレーズがある場合の提案の取得

キーフレーズに一致する候補を要求する場合は、queryオブジェクトとsuggestionオブジェクトの両方を渡す必要があります。

たとえば、訪問者がキーワードcloudを検索し、次の操作を行うとします。

  • 訪問者がキーワードを入力した後に5つのキーフレーズ候補を表示します。

  • コンテンツタイトルと訪問者のコンテキストを使用して、関連するキーフレーズの提案を表示するtitle_context_awareと呼ばれる事前定義されたsuggestion blockを使用します。

    手記

    この例では、title_context_awareという提案タイプを使用します。ただし、管理者が定義した任意の候補タイプを使用できます。

次に、サンプル要求を示します。

{
    "widget": {
        "items": [
            {
                "rfk_id": "rfkid_7",
                "entity": "content",
                "search": {
                    "suggestion": [
                        {
                            "max": 5,
                            "name": "title_context_aware"
                        }
                    ],
                    "query": {
                        "keyphrase": "cloud"
                    }
                }
            }
        ]
    },
    "context": {
        "locale": {
            "country": "us",
            "language": "en"
        },
        "user": {
            "uuid": "159871551-m7-17-44-1p-c0ya4nb69t8o0iho2eia-1667926756185"
        }
    }
}

要求に対する応答は次のとおりです。

{
    "widgets": [
        {
            "rfk_id": "rfkid_7",
            "entity": "content",
            "suggestion": {
                "title_context_aware": [
                    {
                        "text": "cloud on salesforce",
                        "freq": 4
                    },
                    {
                        "text": "cloud architecture",
                        "freq": 4
                    },
                    {
                        "text": "cloud portal",
                        "freq": 3
                    },
                    {
                        "text": "cloud portal technical",
                        "freq": 3
                    },
                    {
                        "text": "cloud resources",
                        "freq": 2
                    }
                ]
            }
        }
    ],
    "dt": 104,
    "ts": 1669689280650
}

応答suggestionオブジェクトには、ユーザーがキーフレーズcloudを入力したときに表示できる候補のリストがあることがわかります。

キーフレーズがない場合の提案の取得

訪問者が検索バー内をクリックしたが何も入力していない場合など、キーフレーズに基づかない候補をリクエストできます。

キーフレーズなしで候補を取得するには、次のことを確認してください。

  • contextAwareまたはsortByAttributeアルゴリズムを使用するsuggestion blockがSearchに存在し、このsuggestion blockをリクエストで使用します。

  • 訪問者は、Searchがユーザーの好みに関する情報を収集するのに十分なほどWebサイトをクリックしています。

    手記

    訪問者があなたのウェブサイトを操作していない場合でも、キーフレーズなしで提案をリクエストすることができます。ただし、Searchには訪問者が好むものに関するデータがないため、応答には提案は表示されません。

  • Personalization、ランク付け、またはその両方が有効になります。デフォルトでは、SearchはAPIリクエストで パーソナライゼーション を有効にしますが、機能させるにはUUIDを渡す必要があります。ランク付けについては、管理者にSearchで設定してもらい、オプションでAPIリクエストで ランク付け オブジェクトを渡すことで上書きできます。

    手記

    パーソナライゼーションやランキングを有効にしなくても、キーフレーズなしで提案をリクエストできます。ただし、Searchには訪問者が好むものに関するデータがないため、応答には提案がまったく表示されません。

以下は、title_context_awareという名前のsuggestion blockを使用してキーフレーズがない場合に6つの提案を取得するためのサンプルリクエストです。

{
    "widget": {
        "items": [
            {
                "rfk_id": "rfkid_7",
                "entity": "content",
                "search": {
                    "suggestion": [
                        {
                            "max": 6,
                            "name": "title_context_aware"
                        }
                    ]
                }
            }
        ]
    },
    "context": {
        "locale": {
            "country": "us",
            "language": "en"
        },
        "user": {
            "uuid": "159871551-m7-17-44-1p-c0ya4nb69t8o0iho2eia-1667926756185"
        }
    }
}

検索フォールバックとしての候補の使用

訪問者が検索語を入力し、候補をクリックせずに検索ボタンをクリックすることがあります。入力した用語にタイプミスがあったり、一致しない場合、Searchはゼロの結果を返し、訪問者には空の検索ページが表示されます。

この状況に対処するには、次の2つのオプションがあります。

  • ページの上部にdid you mean <term with corrected typo> 線が表示された空の検索ページを表示します。次に、訪問者が修正された用語をクリックすると、その用語の検索結果が表示されます。

    手記

    これを行うには、Did you mean UI要素を作成します。 Getting suggestions when there is a keyphraseセクションに示すようにリクエストを作成し、Did you mean要素に応答の提案を渡します。

  • 最初の候補を代替検索語として使用するようにSearchを構成します。このシナリオでは、ユーザーに空の検索ページは表示されません。

2番目のオプションを使用する場合:

  • suggestion.keyphrase_fallbackプロパティをtrueに設定します。これを行うと、検索の結果がゼロSearch見つかった場合、最初のsuggestion blockの最初の候補が代替キーワードとして使用されます。

  • 空のresponse_contextオブジェクトを追加して、応答に代替検索語が使用されている場合に含まれるようにします。

たとえば、訪問者がタイプミスのあるcontenを検索し、検索ボタンをクリックしたとします。 keyphrase_fallback:trueを設定し、Searchが少なくとも1つの提案を生成できる場合は、次のイベントが発生します。

  • 最初に要求を送信すると、Searchはキーフレーズcontenを使用してバックエンド検索を行います。ただし、自動フォールバックを構成したため、Searchは応答を返しません。

  • Sitecore Searchこのsuggestion blockによって提供される最初の提案を代替キーフレーズとして使用して、検索をやり直します。たとえば、返される提案がcontent cloudcontent hubcontent managementの順であるとします。Sitecore Searchは代替キーフレーズとしてcontent cloudを使用し、訪問者にはこのキーフレーズの結果を含む検索ページが表示されます。

以下は、訪問者が3つのsuggestion blocks(title_context_awaretitletitle_spelling )を使用するcontenを検索する前の例のリクエストの例です。

 "widget": {
    "items": [
      {
        "entity": "content",
        "rfk_id": "rfkid_7",
        "search": {
          "content": {},
          "query": {
            "keyphrase": "conten"
          },
          "suggestion": [
            {
              "name": "title_context_aware",
              "max": 3,
              "keyphrase_fallback": true
            },
            {
              "name": "title",
              "max": 3,
              "keyphrase_fallback": true
            },
            {
              "name": "title_spelling",
              "max": 3,
              "keyphrase_fallback": true
            }
          ],
          "response_context": {}
        }
      }
    ]
  }
}'

この要求に対する応答の例を次に示します。

{
  "widgets": [
    {
      "rfk_id": "rfkid_7",
      "entity": "content",
      "suggestion": {
        "title_context_aware": [
          {
            "text": "content cloud",
            "freq": 4
          },
          {
            "text": "content hub",
            "freq": 4
          },
          {
            "text": "content management",
            "freq": 3
          }
        ],
        "title": [
          {
            "text": "content editor vs experience editor",
            "freq": 4
          },
          {
            "text": "content management and delivery",
            "freq": 3
          },
          {
            "text": "content hub sitecore documentation",
            "freq": 3
          }
        ],
        "title_spelling": [
          {
            "text": "content",
            "freq": 2
          },
          {
            "text": "contents",
            "freq": 4
          }
          {
            "text": "contentful",
            "freq": 4
          }
        ]
      }
    }
  ],
  "dt": 104,
  "ts": 1669689280650,
  "response_context": {
    "keyphrase": "content cloud",
    "original_keyphrase": "conten"
  }
}

Searchが検索 (keyphrase) にcontent cloudという用語を使用したことがわかりますが、これは最初のsuggestion blockによって返された最初の提案でした。

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