スコアリング プロファイルを Azure Cognitive Search のインデックスに追加するAdd scoring profiles to an Azure Cognitive Search index

"スコアリング" では、順位に従って並べられる結果セット内の各項目の検索スコアが計算されます。Scoring computes a search score for each item in a rank ordered result set. 検索結果セット内のすべての項目にそれぞれ検索スコアが割り当てられ、最上位から最下位まで順位が付けられます。Every item in a search result set is assigned a search score, then ranked highest to lowest.

Azure Cognitive Search では、既定のスコアリングを使用して初期スコアを計算しますが、"スコアリング プロファイル" を介して計算をカスタマイズすることができます。Azure Cognitive Search uses default scoring to compute an initial score, but you can customize the calculation through a scoring profile. スコアリング プロファイルでは、検索結果の項目の順位付けをより細かく制御できます。Scoring profiles give you greater control over the ranking of items in search results. たとえば、収益の可能性に基づいて項目をブーストしたり、より新しい項目を昇格させたり、場合によっては在庫期間が長すぎる項目をブーストしたりできます。For example, you might want to boost items based on their revenue potential, promote newer items, or perhaps boost items that have been in inventory too long.

次のビデオ セグメントは、Azure Cognitive Search でのスコアリング プロファイルの動作についての部分まで早送りされます。The following video segment fast-forwards to how scoring profiles work in Azure Cognitive Search.

スコアリング プロファイルの定義Scoring profile definitions

スコアリング プロファイルは、インデックス定義の一部であり、重み付けされたフィールド、関数、およびパラメーターで構成されます。A scoring profile is part of the index definition, composed of weighted fields, functions, and parameters.

スコアリング プロファイルとはどのようなものかを説明するために、次の例に 'geo' という名前の簡単なプロファイルを示します。To give you an idea of what a scoring profile looks like, the following example shows a simple profile named 'geo'. このプロファイルは、hotelName フィールド内の検索語句を含む項目をブーストします。This one boosts items that have the search term in the hotelName field. また、 distance 関数を使用して、現在の場所から 10 キロメートル以内にある項目を優先します。It also uses the distance function to favor items that are within ten kilometers of the current location. 他のユーザーが語句 "inn" の検索を実行し、"inn" がたまたまホテル名の一部であった場合、現在位置の半径 10 Km 以内にあって "inn" を含むホテルが記載されているドキュメントが検索結果で上位に表示されます。If someone searches on the term 'inn', and 'inn' happens to be part of the hotel name, documents that include hotels with 'inn' within a 10 KM radius of the current location will appear higher in the search results.

"scoringProfiles": [
  {  
    "name":"geo",
    "text": {  
      "weights": {  
        "hotelName": 5
      }                              
    },
    "functions": [
      {  
        "type": "distance",
        "boost": 5,
        "fieldName": "location",
        "interpolation": "logarithmic",
        "distance": {
          "referencePointParameter": "currentLocation",
          "boostingDistance": 10
        }                        
      }                                      
    ]                     
  }            
]

このスコアリング プロファイルを使用するには、クエリを作成して、クエリ文字列にプロファイルを指定します。To use this scoring profile, your query is formulated to specify the profile on the query string. 次のクエリで、要求内のクエリ パラメーター scoringProfile=geo に注目してください。In the query below, notice the query parameter scoringProfile=geo in the request.

GET /indexes/hotels/docs?search=inn&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&api-version=2020-06-30 

このクエリは、語句 'inn' を検索し、現在の場所を渡します。This query searches on the term ‘inn’ and passes in the current location. このクエリには、scoringParameter などの他のパラメーターが含まれていることがわかります。Notice that this query includes other parameters, such as scoringParameter. クエリ パラメーターについては、「ドキュメントの検索 (Azure Cognitive Search REST API)」を参照してください。Query parameters are described in Search Documents (Azure Cognitive Search REST API).

スコアリング プロファイルの詳細な例を確認するには、「 」をクリックします。Click Example to review a more detailed example of a scoring profile.

既定のスコアリングとはWhat is default scoring?

スコアリングでは、順位に従って並べられる結果セット内の各項目の検索スコアを計算します。Scoring computes a search score for each item in a rank ordered result set. 検索結果セット内のすべての項目にそれぞれ検索スコアが割り当てられ、最上位から最下位まで順位が付けられます。Every item in a search result set is assigned a search score, then ranked highest to lowest. アプリケーションには、より高いスコアを持つ項目が返されます。Items with the higher scores are returned to the application. 既定では、上位 50 個が返されますが、 $top パラメーターを使用することで、返される項目数を減らしたり増やしたりできます (1 回の応答で 1000 個まで)。By default, the top 50 are returned, but you can use the $top parameter to return a smaller or larger number of items (up to 1000 in a single response).

検索スコアは、データとクエリの統計プロパティに基づいて計算されます。The search score is computed based on statistical properties of the data and the query. Azure Cognitive Search はクエリ文字列内の検索語句 (searchModeに応じて一部またはすべて) を含むドキュメントを検索し、検索語句のインスタンスを多く含むドキュメントを優先します。Azure Cognitive Search finds documents that include the search terms in the query string (some or all, depending on searchMode), favoring documents that contain many instances of the search term. データ インデックス全体での語句の出現頻度は低いがドキュメント内ではよく使用されている場合、検索スコアはより高くなります。The search score goes up even higher if the term is rare across the data index, but common within the document. 関連性を計算するこのアプローチの基礎となる手法は、TF-IDF (単語の出現頻度 - 逆文書頻度) と呼ばれています。The basis for this approach to computing relevance is known as TF-IDF or term frequency-inverse document frequency.

カスタムの並べ替えが行われないと仮定した場合、結果は検索スコアによって順位付けされてから、呼び出し元のアプリケーションに返されます。Assuming there is no custom sorting, results are then ranked by search score before they are returned to the calling application. $top が指定されていない場合、最も高い検索スコアを持つ 50 個の項目が返されます。If $top is not specified, 50 items having the highest search score are returned.

検索スコアの値は、結果セット全体で繰り返すことができます。Search score values can be repeated throughout a result set. たとえば、スコアが 1.2 である項目が 10 個、スコアが 1.0 である項目が 20 個、スコアが 0.5 である項目が 20 個あるとします。For example, you might have 10 items with a score of 1.2, 20 items with a score of 1.0, and 20 items with a score of 0.5. 同じ検索スコアを持つ項目が複数ヒットした場合、同じスコアを持つ項目の順序付けは定義されていないので安定しません。When multiple hits have the same search score, the ordering of same scored items is not defined, and is not stable. もう一度クエリを実行すると、項目の位置が変わる可能性があります。Run the query again, and you might see items shift position. 同一スコアの項目が 2 つ存在する場合、最初に表示される項目を特定することはできません。Given two items with an identical score, there is no guarantee which one appears first.

スコアリング ロジックを追加する場合When to add scoring logic

既定の順位付けの動作ではビジネス目標を達成するに至らない場合、1 つ以上のスコアリング プロファイルを作成する必要があります。You should create one or more scoring profiles when the default ranking behavior doesn’t go far enough in meeting your business objectives. たとえば、検索の関連性で、新しく追加された項目を優先するとします。For example, you might decide that search relevance should favor newly added items. 同様に、利益率を含んでいるフィールド、または他に収益の可能性を示す何らかのフィールドがあるとします。Likewise, you might have a field that contains profit margin, or some other field indicating revenue potential. ビジネスに利点をもたらすブースティング ヒットは、スコアリング プロファイルの使用を決定する上で重要な要因になる場合があります。Boosting hits that bring benefits to your business can be an important factor in deciding to use scoring profiles.

関連性に基づく順序付けも、スコアリング プロファイルを通して実装されます。Relevancy-based ordering is also implemented through scoring profiles. 価格、日付、評価、または関連性での並べ替えが可能な、以前に使用した検索結果ページを検討してしてください。Consider search results pages you’ve used in the past that let you sort by price, date, rating, or relevance. Azure Cognitive Search では、スコアリング プロファイルによって「関連性」オプションが開始されます。In Azure Cognitive Search, scoring profiles drive the ‘relevance’ option. 関連性の定義は、ビジネス目標および提供する検索機能の種類に基づいて、ユーザーによって制御されます。The definition of relevance is controlled by you, predicated on business objectives and the type of search experience you want to deliver.

Example

前述のように、カスタマイズされたスコアリングは、インデックス スキーマで定義された 1 つ以上のスコアリング プロファイルを介して実装されます。As noted earlier, customized scoring is implemented through one or more scoring profiles defined in an index schema.

次の例では、2 つのスコアリング プロファイル (boostGenrenewAndHighlyRated) を使用するインデックス スキーマを示します。This example shows the schema of an index with two scoring profiles (boostGenre, newAndHighlyRated). いずれかのプロファイルをクエリ パラメーターとして指定したクエリを、このインデックスに対して実行すると、該当するプロファイルを使用して結果セットのスコアリングが行われます。Any query against this index that includes either profile as a query parameter will use the profile to score the result set.

{  
  "name": "musicstoreindex",  
  "fields": [  
    { "name": "key", "type": "Edm.String", "key": true },  
    { "name": "albumTitle", "type": "Edm.String" },  
    { "name": "albumUrl", "type": "Edm.String", "filterable": false },  
    { "name": "genre", "type": "Edm.String" },  
    { "name": "genreDescription", "type": "Edm.String", "filterable": false },  
    { "name": "artistName", "type": "Edm.String" },  
    { "name": "orderableOnline", "type": "Edm.Boolean" },  
    { "name": "rating", "type": "Edm.Int32" },  
    { "name": "tags", "type": "Collection(Edm.String)" },  
    { "name": "price", "type": "Edm.Double", "filterable": false },  
    { "name": "margin", "type": "Edm.Int32", "retrievable": false },  
    { "name": "inventory", "type": "Edm.Int32" },  
    { "name": "lastUpdated", "type": "Edm.DateTimeOffset" }  
  ],  
  "scoringProfiles": [  
    {  
      "name": "boostGenre",  
      "text": {  
        "weights": {  
          "albumTitle": 1.5,  
          "genre": 5,  
          "artistName": 2  
        }  
      }  
    },  
    {  
      "name": "newAndHighlyRated",  
      "functions": [  
        {  
          "type": "freshness",  
          "fieldName": "lastUpdated",  
          "boost": 10,  
          "interpolation": "quadratic",  
          "freshness": {  
            "boostingDuration": "P365D"  
          }  
        },  
        {
          "type": "magnitude",  
          "fieldName": "rating",  
          "boost": 10,  
          "interpolation": "linear",  
          "magnitude": {  
            "boostingRangeStart": 1,  
            "boostingRangeEnd": 5,  
            "constantBoostBeyondRange": false  
          }  
        }  
      ]  
    }  
  ],  
  "suggesters": [  
    {  
      "name": "sg",  
      "searchMode": "analyzingInfixMatching",  
      "sourceFields": [ "albumTitle", "artistName" ]  
    }  
  ]   
}  

ワークフローWorkflow

カスタムのスコアリング動作を実装するには、インデックスを定義するスキーマにスコアリング プロファイルを追加します。To implement custom scoring behavior, add a scoring profile to the schema that defines the index. インデックスには最大 100 個のスコアリング プロファイルを含めることができます (サービスの制限に関する記事を参照) が、クエリには一度に 1 つのプロファイルのみ指定できます。You can have up to 100 scoring profiles within an index (see Service Limits), but you can only specify one profile at time in any given query.

このトピックで提供される テンプレート を使用して開始します。Start with the Template provided in this topic.

名前を指定します。Provide a name. スコアリング プロファイルは省略できますが、追加する場合は、名前が必要ですScoring profiles are optional, but if you add one, the name is required. フィールドの名前付け規則に従ってください (文字で始め、特殊文字や予約語の使用は避ける)。Be sure to follow the naming conventions for fields (starts with a letter, avoids special characters and reserved words). 完全な一覧については、名前付け規則 (Azure Cognitive Search) に関する記事を参照してください。See Naming rules (Azure Cognitive Search) for the complete list.

スコアリング プロファイルの本文は、重み付けされたフィールドと関数によって構成されます。The body of the scoring profile is constructed from weighted fields and functions.

WeightsWeights 相対的な重みをフィールドに割り当てる名前と値のペアを指定します。Specify name-value pairs that assign a relative weight to a field. では、albumTitle、genre、および artistName のフィールドはそれぞれ 1.5、5、および 2 でブーストされます。In the Example, the albumTitle, genre, and artistName fields are boosted 1.5, 5, and 2 respectively. なぜ genre は他のものよりも大幅に高くブーストされるのでしょうか?Why is genre boosted so much higher than the others? ある程度同じようなデータに対して検索を実行する場合 (musicstoreindex での "genre" の場合のように)、相対的な重みをより分散することが必要になる可能性があります。If search is conducted over data that is somewhat homogenous (as is the case with 'genre' in the musicstoreindex), you might need a larger variance in the relative weights. たとえば、 musicstoreindexでは、「ロック」はジャンルとして表示されると共に、言葉で表現されるジャンルの説明の中にも表示されます。For example, in the musicstoreindex, ‘rock’ appears as both a genre and in identically phrased genre descriptions. ジャンルがジャンルの説明を上回るようにする場合は、genre フィールドの相対的な重みをより高くする必要があります。If you want genre to outweigh genre description, the genre field will need a much higher relative weight.
関数Functions 特定のコンテキストに対して追加の計算が必要な場合に使用されます。Used when additional calculations are required for specific contexts. 有効な値は freshnessmagnitudedistance、および tag です。Valid values are freshness, magnitude, distance, and tag. 各関数には、固有のパラメーターがあります。Each function has parameters that are unique to it.

- freshness を使用してください。- freshness should be used when you want to boost by how new or old an item is. この関数は、datetime フィールドでのみ使用できます (edm.DataTimeOffset)。This function can only be used with datetime fields (edm.DataTimeOffset). boostingDuration 属性は freshness 関数のみで使用されることに注意してください。Notice the boostingDuration attribute is used only with the freshness function.
- magnitude を使用してください。- magnitude should be used when you want to boost based on how high or low a numeric value is. この関数を呼び出すシナリオとしては、利益率、最高価格、最低価格、またはダウンロード回数に基づくブーストがあります。Scenarios that call for this function include boosting by profit margin, highest price, lowest price, or a count of downloads. この関数は、倍精度浮動小数点フィールドと整数フィールドでのみ使用できます。This function can only be used with double and integer fields.
magnitude 関数では、逆のパターンが必要な場合 (たとえば、価格がより高い項目より価格がより低い項目をブーストする場合) に、高範囲から低範囲に反転することができます。For the magnitude function, you can reverse the range, high to low, if you want the inverse pattern (for example, to boost lower-priced items more than higher-priced items). たとえば、価格の範囲が 100 ~ 1 ドルである場合、boostingRangeStart を 100 に、boostingRangeEnd を 1 に設定して、より低い価格の項目をブーストします。Given a range of prices from $100 to $1, you would set boostingRangeStart at 100 and boostingRangeEnd at 1 to boost the lower-priced items.
- distance を使用してください。- distance should be used when you want to boost by proximity or geographic location. この関数は、 Edm.GeographyPoint フィールドでのみ使用できます。This function can only be used with Edm.GeographyPoint fields.
- tag を使用してください。- tag should be used when you want to boost by tags in common between documents and search queries. この関数は、Edm.String フィールドと Collection(Edm.String) フィールドでのみ使用できます。This function can only be used with Edm.String and Collection(Edm.String) fields.

関数の使用に関する規則Rules for using functions

関数の型 (freshnessmagnitudedistancetag) は、小文字にする必要があります。Function type (freshness, magnitude, distance), tag must be lower case.

関数に null または空の値を含めることはできません。Functions cannot include null or empty values. 具体的には、フィールド名を含めた場合、それを何かに設定する必要があります。Specifically, if you include fieldname, you have to set it to something.

関数はフィルターの適用が可能なフィールドにのみ適用できます。Functions can only be applied to filterable fields. フィルター可能フィールドについて詳しくは、インデックスの作成 (Azure Cognitive Search Service REST API) をご覧ください。See Create Index (Azure Cognitive Search REST API) for more information about filterable fields.

関数は、インデックスのフィールド コレクションで定義されているフィールドにのみ適用できます。Functions can only be applied to fields that are defined in the fields collection of an index.

インデックスが定義されたら、インデックス スキーマをアップロードし、ドキュメントをアップロードして、インデックスを構築します。After the index is defined, build the index by uploading the index schema, followed by documents. これらの操作の手順については、「インデックスの作成 (Azure Cognitive Search Service REST API)」とドキュメントの追加、更新、削除 (Azure Search Service REST API) に関する記事をご覧ください。See Create Index (Azure Cognitive Search REST API) and Add, Update or Delete Documents (Azure Cognitive Search REST API) for instructions on these operations. インデックスが構築されると、検索データと連携する機能的なスコアリング プロファイルが使用できるようになります。Once the index is built, you should have a functional scoring profile that works with your search data.

テンプレートTemplate

このセクションでは、スコアリング プロファイルの構文とテンプレートを示します。This section shows the syntax and template for scoring profiles. 属性の説明については、次のセクションの「インデックスの属性のリファレンス」をご覧ください。Refer to Index attributes reference in the next section for descriptions of the attributes.

. . .   
"scoringProfiles": [  
  {   
    "name": "name of scoring profile",   
    "text": (optional, only applies to searchable fields) {   
      "weights": {   
        "searchable_field_name": relative_weight_value (positive #'s),   
        ...   
      }   
    },   
    "functions": (optional) [  
      {   
        "type": "magnitude | freshness | distance | tag",   
        "boost": # (positive number used as multiplier for raw score != 1),   
        "fieldName": "...",   
        "interpolation": "constant | linear (default) | quadratic | logarithmic",   

        "magnitude": {
          "boostingRangeStart": #,   
          "boostingRangeEnd": #,   
          "constantBoostBeyondRange": true | false (default)
        }  

        // ( - or -)  

        "freshness": {
          "boostingDuration": "..." (value representing timespan over which boosting occurs)   
        }  

        // ( - or -)  

        "distance": {
          "referencePointParameter": "...", (parameter to be passed in queries to use as reference location)   
          "boostingDistance": # (the distance in kilometers from the reference location where the boosting range ends)   
        }   

        // ( - or -)  

        "tag": {
          "tagsParameter":  "..."(parameter to be passed in queries to specify a list of tags to compare against target field)   
        }
      }
    ],   
    "functionAggregation": (optional, applies only when functions are specified) "sum (default) | average | minimum | maximum | firstMatching"   
  }   
],   
"defaultScoringProfile": (optional) "...",   
. . .  

インデックスの属性のリファレンスIndex attributes reference

注意

スコアリング関数はフィルターの適用が可能なフィールドにのみ適用できます。A scoring function can only be applied to fields that are filterable.

属性Attribute 説明Description
name 必須。Required. これは、スコアリング プロファイルの名前です。This is the name of the scoring profile. これは、フィールドの場合と同じ名前付け規則に従います。It follows the same naming conventions of a field. 先頭は英文字にする必要があります。ドット、コロン、または @ 記号を含めることはできません。さらに、"azureSearch" (大文字小文字の区別あり) という句で開始することはできません。It must start with a letter, cannot contain dots, colons or @ symbols, and cannot start with the phrase ‘azureSearch’ (case-sensitive).
text 重みプロパティが含まれます。Contains the weights property.
weights 省略可能。Optional. フィールド名と相対的な重みをそれぞれ指定する名前と値のペアが含まれます。Contains name-value pairs that each specify a field name and relative weight. 相対的な重みは、正の整数または浮動小数点数にする必要があります。Relative weight must be a positive integer or floating-point number.

検索可能フィールド間の相対的な重要度を示すには、重みを使用します。Weights are used to indicate the importance of one searchable field relative to another.
functions 省略可能。Optional. スコアリング関数はフィルターの適用が可能なフィールドにのみ適用できます。A scoring function can only be applied to fields that are filterable.
type スコアリング関数の場合は必須です。Required for scoring functions. 使用する関数の型を示します。Indicates the type of function to use. 有効な値は、magnitude、freshness、distance、tag です。Valid values include magnitude, freshness, distance, and tag. 各スコアリング プロファイルには複数の関数を含めることができます。You can include more than one function in each scoring profile. 関数名は小文字にする必要があります。The function name must be lower case.
boost スコアリング関数の場合は必須です。Required for scoring functions. 生のスコアの乗数として使用される正の数値。A positive number used as multiplier for raw score. 1 にすることはできません。It cannot be equal to 1.
fieldname スコアリング関数の場合は必須です。Required for scoring functions. スコアリング関数は、インデックスのフィールド コレクションに属し、フィルターの適用が可能なフィールドにのみ適用できます。A scoring function can only be applied to fields that are part of the field collection of the index, and that are filterable. さらに、各関数型には追加の制限 (freshness は日時フィールドで使用され、magnitude は整数または倍精度浮動小数点フィールドで使用され、distance は場所フィールドで使用される) が導入されています。In addition, each function type introduces additional restrictions (freshness is used with datetime fields, magnitude with integer or double fields, and distance with location fields). 関数の定義ごとに指定できるフィールドは 1 つだけです。You can only specify a single field per function definition. たとえば、同じプロファイルで magnitude を 2 回使用するには、magnitude の定義を 2 つ含める必要があります (フィールドごとに 1 つ)。For example, to use magnitude twice in the same profile, you would need to include two definitions magnitude, one for each field.
interpolation スコアリング関数の場合は必須です。Required for scoring functions. スコア ブースティングが範囲の始点から範囲の終点に向かって高くなる場合の傾斜を定義します。Defines the slope for which the score boosting increases from the start of the range to the end of the range. 有効な値は、Linear (既定値)、Constant、Quadratic、Logarithmic です。Valid values include Linear (default), Constant, Quadratic, and Logarithmic. 詳細については、「 補間の設定 」を参照してください。See Set interpolations for details.
magnitude 数値フィールドの値の範囲に基づいて順位付けを変更するには、magnitude スコアリング関数を使用します。The magnitude scoring function is used to alter rankings based on the range of values for a numeric field. 最も一般的な使用例には、次のようなものがあります。Some of the most common usage examples of this are:

- 星評価: "星評価" フィールド内の値に基づいて、スコアリングを変更します。- Star ratings: Alter the scoring based on the value within the “Star Rating” field. 2 つの項目が該当する場合は、評価の高い方の項目が最初に表示されます。When two items are relevant, the item with the higher rating will be displayed first.
- 利益: 2 つのドキュメントが該当する場合、小売業者は利益が高い方のドキュメントを最初にブーストできます。- Margin: When two documents are relevant, a retailer may wish to boost documents that have higher margins first.
- クリック回数: 製品やページに対するクリック操作を追跡するアプリケーションの場合は、magnitude を使用することで、最大トラフィックを示す傾向にある項目をブーストすることが可能です。- Click counts: For applications that track click through actions to products or pages, you could use magnitude to boost items that tend to get the most traffic.
- ダウンロード回数: ダウンロードを追跡するアプリケーションの場合は、magnitude 関数を使用することで、ダウンロード回数が最も多い項目をブーストすることができます。- Download counts: For applications that track downloads, the magnitude function lets you boost items that have the most downloads.
magnitude | boostingRangeStartmagnitude | boostingRangeStart magnitude をスコアリングする範囲の開始値を設定します。Sets the start value of the range over which magnitude is scored. 値は整数または浮動小数点数にする必要があります。The value must be an integer or floating-point number. 1 ~ 4 の星評価を対象とする場合、これは 1 になります。For star ratings of 1 through 4, this would be 1. 50% を超える利益を対象とする場合、これは 50 になります。For margins over 50%, this would be 50.
magnitude | boostingRangeEndmagnitude | boostingRangeEnd magnitude をスコアリングする範囲の終了値を設定します。Sets the end value of the range over which magnitude is scored. 値は整数または浮動小数点数にする必要があります。The value must be an integer or floating-point number. 1 ~ 4 の星評価を対象とする場合、これは 4 になります。For star ratings of 1 through 4, this would be 4.
magnitude | constantBoostBeyondRangemagnitude | constantBoostBeyondRange 有効な値は、true または false (既定値) です。Valid values are true or false (default). true に設定すると、対象フィールドの値が範囲の上限を超えているドキュメントに、フル ブーストが継続的に適用されます。When set to true, the full boost will continue to apply to documents that have a value for the target field that’s higher than the upper end of the range. false に設定すると、対象フィールドの値が範囲外にあるドキュメントに対して、この関数のブーストは適用されません。If false, the boost of this function won’t be applied to documents having a value for the target field that falls outside of the range.
freshness DateTimeOffset フィールドの値に基づいて項目の順位付けのスコアを変更するには、freshness スコアリング関数を使用します。The freshness scoring function is used to alter ranking scores for items based on values in DateTimeOffset fields. たとえば、最近の日付を持つ項目に、より古い日付を持つ項目よりも高い順位を付けることができます。For example, an item with a more recent date can be ranked higher than older items.

将来の日付を使用して、カレンダー イベントなどの項目に順位を付けることもできます。たとえば、現在に近い日付の項目を遠い日付の項目よりも高い順位にすることができます。It is also possible to rank items like calendar events with future dates such that items closer to the present can be ranked higher than items further in the future.

現在のサービス リリースでは、範囲の一端が現在の時刻に固定されます。In the current service release, one end of the range will be fixed to the current time. もう一端は、 boostingDurationに基づく過去の時刻です。The other end is a time in the past based on the boostingDuration. 将来の時刻の範囲をブーストするには、負の値の boostingDuration を使用します。To boost a range of times in the future, use a negative boostingDuration.

最大および最小の範囲からのブースティングの変化率は、スコアリング プロファイルに適用した補間によって決定されます (下図参照)。The rate at which the boosting changes from a maximum and minimum range is determined by the Interpolation applied to the scoring profile (see the figure below). 適用されるブースティング係数を反転するには、ブースト係数として 1 未満を選択します。To reverse the boosting factor applied, choose a boost factor of less than 1.
freshness | boostingDurationfreshness | boostingDuration 特定のドキュメントに対して有効期限を設定します。この期限を過ぎるとブースティングは停止します。Sets an expiration period after which boosting will stop for a particular document. 構文と例については、以下のセクション「boostingDuration の設定」を参照してください。See Set boostingDuration in the following section for syntax and examples.
distance 地理的な参照場所との間の距離に基づいてドキュメントのスコアに影響を与えるには、distance スコアリング関数を使用します。The distance scoring function is used to affect the score of documents based on how close or far they are relative to a reference geographic location. 参照場所は、クエリの一部としてパラメーター (scoringParameterquery 文字列オプションを使用) 内に lon,lat 引数で指定します。The reference location is given as part of the query in a parameter (using the scoringParameterquery string option) as a lon,lat argument.
distance | referencePointParameterdistance | referencePointParameter 参照場所として使用するためにクエリに渡されるパラメーター。A parameter to be passed in queries to use as reference location. scoringParameter はクエリ パラメーターです。scoringParameter is a query parameter. クエリ パラメーターの説明については、「ドキュメントの検索 (Azure Cognitive Search REST API)」を参照してください。See Search Documents (Azure Cognitive Search REST API) for descriptions of query parameters.
distance | boostingDistancedistance | boostingDistance ブースティング範囲が終了する、参照場所からの距離をキロメートルで示す数値。A number that indicates the distance in kilometers from the reference location where the boosting range ends.
tag ドキュメントと検索クエリのタグに基づいてドキュメントのスコアに影響を与えるには、tag スコアリング関数を使用します。The tag scoring function is used to affect the score of documents based on tags in documents and search queries. 検索クエリと共通のタグを持つドキュメントがブーストされます。Documents that have tags in common with the search query will be boosted. 検索クエリのタグは、(scoringParameterquery 文字列オプションを使用して) 各検索要求でスコアリング パラメーターとして提供されます。The tags for the search query is provided as a scoring parameter in each search request (using the scoringParameterquery string option).
tag | tagsParametertag | tagsParameter 特定の要求のタグを指定するためにクエリに渡されるパラメーター。A parameter to be passed in queries to specify tags for a particular request. scoringParameter はクエリ パラメーターです。scoringParameter is a query parameter. クエリ パラメーターの説明については、「ドキュメントの検索 (Azure Cognitive Search REST API)」を参照してください。See Search Documents (Azure Cognitive Search REST API) for descriptions of query parameters.
functionAggregation 省略可能。Optional. 関数を指定した場合にのみ適用されます。Applies only when functions are specified. 有効な値は、sum (既定値)、average、minimum、maximum、firstMatching です。Valid values include: sum (default), average, minimum, maximum, and firstMatching. 検索スコアは、複数の変数 (複数の関数など) から計算される単一の値です。A search score is single value that is computed from multiple variables, including multiple functions. この属性では、すべての関数のブーストを、基本ドキュメント スコアに適用される 1 つの集計ブーストに集約する方法が示されます。This attribute indicates how the boosts of all the functions are combined into a single aggregate boost that then is applied to the base document score. 基本スコアは、ドキュメントと検索クエリから算出される tf-idf 値に基づいています。The base score is based on the tf-idf value computed from the document and the search query.
defaultScoringProfile 検索要求の実行時に、スコアリング プロファイルが指定されていない場合は、既定のスコアリングが使用されます (tf-idf のみ)。When executing a search request, if no scoring profile is specified, then default scoring is used (tf-idf only).

ここでは既定のスコアリング プロファイル名を設定できます。Azure Cognitive Search は検索要求に特定のプロファイルが指定されていない場合、そのプロファイルを使用します。A default scoring profile name can be set here, causing Azure Cognitive Search to use that profile when no specific profile is given in the search request.

補間の設定Set interpolations

補間を使用することにより、スコアリングに使用される傾きの形状を設定できます。Interpolations allow you to set the shape of the slope used for scoring. スコアリングは高から低なので、傾きは常に減少ですが、補間により下向きの傾きの曲線が決まります。Because scoring is high to low, the slope is always decreasing, but the interpolation determines the curve of the downward slope. 次の補間を使用できます。The following interpolations can be used:

補間Interpolation 説明Description
linear 最大および最小の範囲内にある項目の場合、項目に適用されるブーストは一定の減少量で行われます。For items that are within the max and min range, the boost applied to the item will be done in a constantly decreasing amount. 線形はスコアリング プロファイルの既定の補間です。Linear is the default interpolation for a scoring profile.
constant 開始と終了の範囲内にある項目については、一定のブーストが順位の結果に適用されます。For items that are within the start and ending range, a constant boost will be applied to the rank results.
quadratic ブーストが一定の割合で低下する線形補間と比較して、二次方程式の場合は、最初は遅いペースで低下しますが、終了範囲に近づくにつれて低下するペースが速くなります。In comparison to a Linear interpolation that has a constantly decreasing boost, Quadratic will initially decrease at smaller pace and then as it approaches the end range, it decreases at a much higher interval. tag スコアリング関数では、この補間オプションは使用できません。This interpolation option is not allowed in tag scoring functions.
logarithmic ブーストが一定の割合で低下する線形補間と比較して、対数の場合は、最初は速いペースで低下しますが、終了範囲に近づくにつれて低下するペースが遅くなります。In comparison to a Linear interpolation that has a constantly decreasing boost, Logarithmic will initially decrease at higher pace and then as it approaches the end range, it decreases at a much smaller interval. tag スコアリング関数では、この補間オプションは使用できません。This interpolation option is not allowed in tag scoring functions.

グラフでの定数、線形、二次方程式、log10 の線Constant, linear, quadratic, log10 lines on graph

boostingDuration の設定Set boostingDuration

boostingDurationfreshness 関数の属性です。boostingDuration is an attribute of the freshness function. これを使用して特定のドキュメントに対して有効期限を設定します。この期限が過ぎるとブースティングは停止します。You use it to set an expiration period after which boosting will stop for a particular document. たとえば、10 日のプロモーション期間中に製品ラインまたはブランドをブーストするには、該当するドキュメントに対して 10 日の期間を "P10D" で指定します。For example, to boost a product line or brand for a 10-day promotional period, you would specify the 10-day period as "P10D" for those documents.

boostingDuration は、XSD "dayTimeDuration" 値 (ISO 8601 期間値の制限されたサブセット) としてフォーマットする必要があります。boostingDuration must be formatted as an XSD "dayTimeDuration" value (a restricted subset of an ISO 8601 duration value). これのパターンは次のとおりです:"P[nD][T[nH][nM][nS]]"。The pattern for this is: "P[nD][T[nH][nM][nS]]".

次の表に、いくつかの例を示します。The following table provides several examples.

DurationDuration boostingDurationboostingDuration
1 日1 day "P1D""P1D"
2 日と 12 時間2 days and 12 hours "P2DT12H""P2DT12H"
約 15 分15 minutes "PT15M""PT15M"
30 日 と 5 時間 10 分 6.334 秒30 days, 5 hours, 10 minutes, and 6.334 seconds "P30DT5H10M6.334S""P30DT5H10M6.334S"

他の例については、「XML Schema:Datatypes (XML スキーマ: データ型)」(W3.org の Web サイト) をご覧ください。For more examples, see XML Schema: Datatypes (W3.org web site).

関連項目See also