関連性による検索結果の並べ替え
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
検索結果を整理しやすくするために、検索条件との関連性に基づいて検索結果を並べ替えることができます。これは、検索に最も関連性の高いものが検索結果リストの上部に表示されることを意味します。
検索結果を生成するとき、Sitecore Content Hub は:
- ユーザーが定義した検索条件を適用することによって、検索結果の候補数を減らします。
- 検索結果にスコアを付けて、ランク付けします。最初のステップは、検索条件を適用し、検索候補の数を減らすことです。このステップでは、定義された検索またはフィルター基準に一致するすべてのアセットが出力されます。
2 番目のステップでは、Content Hub は候補セット内の各アセットのスコアを計算して割り当てます。このスコアは、アセットと定義されたクエリとがどの程度関連しているかを反映しています。関連性スコアがアセットに割り当てられた後、検索結果が並べ替えられ、ランク付けされます。
関連性スコア
関連性スコア
Content Hub は BM25 最適一致アルゴリズムを使用して、関連性を計算します。このアルゴリズムは、次の表に示すように、3 つの要素を使用して、各アセットのスコアを決定します。
| 要素 | 説明 |
|---|---|
| 語句頻度 (TF) | これは、検索語句がアセット フィールドで繰り返される回数を指します。繰り返される頻度が高いほど、アセットの関連性が高くなります。たとえば、Winter cookbook と Classic Cocktails recipe book は、両方とも Content Hub のアセットです。
|
| 逆ドキュメント頻度 (IDF) | これは、検索語句を含むアセットの数を指します。アセットの数が多いほど、語句の重要性は低くなります。たとえば、前の例の Winter cookbook と Classic Cocktails recipe book を同じコンテキストで他の 8 つのアセットと共に考えてみます。
|
| フィールド長 | これは、短いフィールドに検索用語が含まれているアセットは、拡張フィールドに同じ語句が含まれているアセットより関連性が高い可能性があることを意味します。たとえば、Winter cookbook の説明は 350 文字ですが、Classic Cocktails recipe book の説明は 1200 文字です。
|
関連性スコア アルゴリズム
関連性スコアの計算には、次の式が使用されます。
ここで:
- qi は i 番目のクエリ語句です。たとえば、ユーザーが「cook」を検索する場合、語句は 1 つであり、q0 が「cook」です。しかし、「famous chef」を検索する場合、語句は 2 つです。この例では、q0 は「famous」であり、q1 は「chef」です。
- IDF(qi) は、i 番目のクエリ語句の逆ドキュメント頻度です。IDF(qi) の計算に使用される式は、次のとおりです。
- docCount は、すべてのアセットの合計数であり、f(qi) は qi 検索語句を含んでいるアセットの数です。たとえば、ユーザーは 10 個のアセットから語句「book」を検索します。語句「book」が 6 つのアセットで出現する場合、IDF(book) は次のように計算されます。
- フィールドの長さが式 (1) の平均フィールド長で除算されます。アセットに対して定義された語句の数が平均より長い場合、スコアは低くなります (分母が大きいため)。語句の数が平均より短い場合は、分母が小さいため、スコアは高くなります。Content Hub でのフィールド長の実装は、文字の長さではなく、語句の数に基づくため、cookbook が 500 ページで、「chef」への言及が 1 回しかなかった場合、「chef」を 1 回しか使用していない短いツイートより関連性は低くなります。
- 変数 b の既定値は 0.75 です。b を変更すると、平均長と比較したフィールド長の効果が変更されます。
- k1 と f(qi, D) は分子と分母の両方にあります。k1 は、語句頻度の飽和特性を定義する変数です。既定値は 1.2 です。詳細については、「リンク」を参照してください。このコンポーネントは、語句の頻度にスコアが割り当てられる方法に影響を与えます。
- f(qi, D) は、i 番目のクエリ語句がアセット D で出現した回数を意味します。前の例の 10 個の定義済みアセットを料理のコンテキストで使用して、ユーザーは "pepper" を検索し、ドキュメント 4 では 11 回、ドキュメント 7 では 2 回出現していますが、他のドキュメントでは 1 回も出現していません。これは、f("pepper", 4) = 11 であり、f("pepper", 7) = 2 ですが、その他すべてのドキュメントでは 0 であると理解できます。f(qi, D) は、クエリ語句がアセットで出現する回数が多いほど、スコアが高くなると理解できます。
アセットのブースト
アセットのブースト
アセットをブーストすることによって、検索結果でのアセットのランク付けに影響を与えることができます。
次のような例を考えてみます。スーパーユーザーは M.Asset のスキーマに次の 2 つのフィールドを追加します。
- Author
- Information About Author
[Author] フィールドで、スーパーユーザーはブースト プロパティを有効にします。
ユーザーが Sara Dubler によって書かれた 2 冊の料理本をアップロードし、次のように追加した場合:
- Summer Salads cookbook - 著者の名前を [Author] フィールドに選択し、もう一方のフィールドを空白のままにします。
- Mediterranean Salads cookbook - [Author] フィールドを空白のままにして、Sara Dubler に関する情報を [Information About Author] フィールドに追加します。
その後、「Sara Dubler」を検索すると、Summer Salad cookbook が最初にリストされます。これは、「Sara Dubler」が [Author] フィールドにあり、このフィールドは [Information about Author] フィールドと比較してブーストされているためです。
ブースト機能と検索では、[検索] コンポーネントで有効になっている場合、ワイルドカード検索がサポートされます。
.accordion { width: 100%; } .accordion-item { background-color: #fff; color: #707070; border-radius: 0rem; } .accordion-item-header { padding: 16px 128px 16px 0px ; color: #333333; line-height: 24px; font-weight: bold; display: flex; align-items: flex-start; position: relative; cursor: pointer; } .accordion-item-header::after { content: "\002B"; font-size: 32px; position: absolute; display: flex; font-family: "Times New Roman"; color: #00908E; right: 1.5rem; align-items: flex-start; } .accordion-item-header.active::after { content: "\2212"; }
.accordion-item-body { max-height: 0; overflow: hidden; transition: max-height 0.2s ease-out; } .accordion-item-body-content { padding: 0 128px 16px 0px; }
@media(max-width:767px) { html { font-size: 14px; } }