Adicionar perfis de pontuação a um índice da Azure Cognitive SearchAdd scoring profiles to an Azure Cognitive Search index

A Pontuação computa uma pontuação de pesquisa para cada item em um conjunto de resultados ordenados de classificação.Scoring computes a search score for each item in a rank ordered result set. É atribuída uma pontuação de pesquisa a cada item em um conjunto de resultados de pesquisa, e depois eles são classificados do mais alto para o mais baixo.Every item in a search result set is assigned a search score, then ranked highest to lowest.

O Pesquisa Cognitiva do Azure usa a pontuação padrão para calcular uma pontuação inicial, mas você pode personalizar o cálculo por meio de um perfil de Pontuação.Azure Cognitive Search uses default scoring to compute an initial score, but you can customize the calculation through a scoring profile. Os perfis de pontuação oferecem maior controle sobre a classificação de itens nos resultados da pesquisa.Scoring profiles give you greater control over the ranking of items in search results. Por exemplo, convém aumentar itens com base em seu potencial de receita, promover itens mais recentes ou talvez aumentar itens que estejam no inventário há muito tempo.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.

O seguinte segmento de vídeo avança rapidamente para como os perfis de Pontuação funcionam no Azure Pesquisa Cognitiva.The following video segment fast-forwards to how scoring profiles work in Azure Cognitive Search.

Definições de perfil de PontuaçãoScoring profile definitions

Um perfil de pontuação faz parte da definição de índice, composta por funções, parâmetros e campos ponderados.A scoring profile is part of the index definition, composed of weighted fields, functions, and parameters.

Para dar uma ideia da aparência de um perfil de pontuação, o exemplo a seguir mostra um perfil simples chamado 'geo'.To give you an idea of what a scoring profile looks like, the following example shows a simple profile named 'geo'. Ele aumenta os itens que têm o termo de pesquisa no campo hotelName.This one boosts items that have the search term in the hotelName field. Ele também usa a função distance para favorecer itens que estão em um raio de dez quilômetros do local atual.It also uses the distance function to favor items that are within ten kilometers of the current location. Se alguém pesquisar o termo "pousada" e "pousada" fizer parte do nome do hotel, os documentos que incluírem hotéis com "pousada" em um raio de 10 KM da localização atual serão exibidos nas posições mais altas nos resultados da pesquisa.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
        }                        
      }                                      
    ]                     
  }            
]

Para usar esse perfil de pontuação, sua consulta é formulada para especificar o perfil na cadeia de caracteres de consulta.To use this scoring profile, your query is formulated to specify the profile on the query string. Na consulta abaixo, observe o parâmetro de consulta scoringProfile=geo na solicitação.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 

Essa consulta pesquisa o termo 'estalagem' e passa o local atual.This query searches on the term ‘inn’ and passes in the current location. Observe que essa consulta inclui outros parâmetros, como scoringParameter .Notice that this query includes other parameters, such as scoringParameter. Os parâmetros de consulta são descritos em Pesquisar documentos (API REST do Azure Pesquisa Cognitiva).Query parameters are described in Search Documents (Azure Cognitive Search REST API).

Clique em Exemplo para examinar um exemplo mais detalhado de um perfil de pontuação.Click Example to review a more detailed example of a scoring profile.

O que é a pontuação padrão?What is default scoring?

A pontuação calcula um resultado de pesquisa para cada item em um conjunto de resultados ordenados por classificação.Scoring computes a search score for each item in a rank ordered result set. É atribuída uma pontuação de pesquisa a cada item em um conjunto de resultados de pesquisa, e depois eles são classificados do mais alto para o mais baixo.Every item in a search result set is assigned a search score, then ranked highest to lowest. Os itens com as pontuações mais altas são retornados para o aplicativo.Items with the higher scores are returned to the application. Por padrão, os 50 primeiros são retornados, mas você pode usar o parâmetro $top para retornar um número maior ou menor de itens (até 1000 em uma única resposta).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).

A pontuação de pesquisa é calculada com base nas propriedades estatísticas dos dados e da consulta.The search score is computed based on statistical properties of the data and the query. O Azure Pesquisa Cognitiva localiza documentos que incluem os termos de pesquisa na cadeia de caracteres de consulta (alguns ou todos, dependendo do searchMode ), favorecendo documentos que contêm muitas instâncias do termo de pesquisa.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. A pontuação de pesquisa aumentará ainda mais se o termo for raro no índice de dados, mas comum no documento.The search score goes up even higher if the term is rare across the data index, but common within the document. A base dessa abordagem para calcular a relevância é conhecida como TF-IDF ou termo Frequency-inverter frequência de documento.The basis for this approach to computing relevance is known as TF-IDF or term frequency-inverse document frequency.

Supondo que não haja uma classificação personalizada, os resultados são então classificados pela pontuação de pesquisa antes de serem retornados ao aplicativo que fez a chamada.Assuming there is no custom sorting, results are then ranked by search score before they are returned to the calling application. Se $top não estiver especificado, serão retornados os 50 itens com a maior pontuação de pesquisa.If $top is not specified, 50 items having the highest search score are returned.

Os valores de pontuação de pesquisa podem ser repetidos em todo um conjunto de resultados.Search score values can be repeated throughout a result set. Por exemplo, você pode ter 10 itens com uma pontuação de 1,2, 20 itens com uma pontuação de 1,0 e 20 itens com uma pontuação de 0,5.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. Quando várias ocorrências têm a mesma pontuação de pesquisa, a ordenação dos mesmos itens pontuados não é definida e não é estável.When multiple hits have the same search score, the ordering of same scored items is not defined, and is not stable. Execute a consulta novamente, e você poderá ver itens mudando de posição.Run the query again, and you might see items shift position. Se houver dois itens com uma pontuação idêntica, não há garantia de qual deles aparecerá primeiro.Given two items with an identical score, there is no guarantee which one appears first.

Quando adicionar a lógica de PontuaçãoWhen to add scoring logic

Você deve criar um ou mais perfis de pontuação quando o comportamento de classificação padrão não é suficiente para atender a seus objetivos de negócios.You should create one or more scoring profiles when the default ranking behavior doesn’t go far enough in meeting your business objectives. Por exemplo, você pode decidir que a relevância de pesquisa deve favorecer itens adicionados recentemente.For example, you might decide that search relevance should favor newly added items. Da mesma forma, você pode ter um campo que contenha a margem de lucro ou algum outro campo indicando o potencial de receita.Likewise, you might have a field that contains profit margin, or some other field indicating revenue potential. Aumentar as ocorrências que trazem benefícios para sua empresa pode ser um fator importante na decisão de usar perfis de pontuação.Boosting hits that bring benefits to your business can be an important factor in deciding to use scoring profiles.

A ordenação com base em relevância também é implementada por meio de perfis de pontuação.Relevancy-based ordering is also implemented through scoring profiles. Considere páginas de resultados de pesquisa que você usou no passado e que lhe permitem classificar por preço, data, classificação ou relevância.Consider search results pages you’ve used in the past that let you sort by price, date, rating, or relevance. No Azure Pesquisa Cognitiva, os perfis de Pontuação orientam a opção ' relevância '.In Azure Cognitive Search, scoring profiles drive the ‘relevance’ option. A definição de relevância é controlada por você, de acordo com objetivos de negócios e com o tipo de experiência de pesquisa que você deseja fornecer.The definition of relevance is controlled by you, predicated on business objectives and the type of search experience you want to deliver.

ExemploExample

Conforme observado anteriormente, a pontuação personalizada é implementada por meio de um ou mais perfis de pontuação definidos em um esquema de índice.As noted earlier, customized scoring is implemented through one or more scoring profiles defined in an index schema.

Este exemplo mostra o esquema de um índice com dois perfis de pontuação (boostGenre, newAndHighlyRated).This example shows the schema of an index with two scoring profiles (boostGenre, newAndHighlyRated). Qualquer consulta em relação a esse índice que inclua um dos perfis como um parâmetro de consulta usará o perfil para pontuar o conjunto de resultados.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" ]  
    }  
  ]   
}  

Fluxo de trabalhoWorkflow

Para implementar um comportamento personalizado de pontuação, adicione um perfil de pontuação ao esquema que define o índice.To implement custom scoring behavior, add a scoring profile to the schema that defines the index. É possível ter até 100 perfis de pontuação em um índice (consulte Limites de Serviço), mas você poderá especificar apenas um perfil no momento em qualquer consulta.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.

Comece com o Modelo fornecido neste tópico.Start with the Template provided in this topic.

Forneça um nome.Provide a name. Os perfis de pontuação são opcionais, mas se você adicionar um, o nome será obrigatório.Scoring profiles are optional, but if you add one, the name is required. Siga as convenções de nomenclatura para os campos (começa com uma letra, evita caracteres especiais e palavras reservadas).Be sure to follow the naming conventions for fields (starts with a letter, avoids special characters and reserved words). Consulte regras de nomenclatura (pesquisa cognitiva do Azure) para obter a lista completa.See Naming rules (Azure Cognitive Search) for the complete list.

O corpo do perfil de pontuação é criado com campos ponderados e funções.The body of the scoring profile is constructed from weighted fields and functions.

GramaturaWeights Especificar pares de nome-valor que atribuem um peso relativo a um campo.Specify name-value pairs that assign a relative weight to a field. No exemplo, os campos campos AlbumTitle, gênero e artistas são aumentados 1,5, 5 e 2, respectivamente.In the Example, the albumTitle, genre, and artistName fields are boosted 1.5, 5, and 2 respectively. Por que o campo gênero aumentou muito mais do que os outros?Why is genre boosted so much higher than the others? Se a pesquisa for conduzida sobre dados relativamente homogêneos (como é o caso de 'gênero' em musicstoreindex), uma variação maior nos pesos relativos poderá ser necessária.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. Por exemplo, em musicstoreindex, 'rock' é exibido como um gênero e em descrições de gênero escritas de forma idêntica.For example, in the musicstoreindex, ‘rock’ appears as both a genre and in identically phrased genre descriptions. Se você quiser que gênero tenha um peso maior do que a descrição do gênero, o campo gênero precisará ter um peso relativo muito mais alto.If you want genre to outweigh genre description, the genre field will need a much higher relative weight.
FunçõesFunctions Usadas quando cálculos adicionais são necessários para contextos específicos.Used when additional calculations are required for specific contexts. Os valores válidos são freshness, magnitude, distance e tag.Valid values are freshness, magnitude, distance, and tag. Cada função tem parâmetros que são exclusivos.Each function has parameters that are unique to it.

- freshness devem ser usados quando você deseja aumentar de acordo com a indicação de que um item é novo ou antigo.- freshness should be used when you want to boost by how new or old an item is. Essa função somente pode ser usada com campos datetime (edm.DataTimeOffset).This function can only be used with datetime fields (edm.DataTimeOffset). Observe que o boostingDuration atributo é usado apenas com a freshness função.Notice the boostingDuration attribute is used only with the freshness function.
- magnitude devem ser usados quando você deseja aumentar de acordo com a indicação de que um valor numérico é alto ou baixo.- magnitude should be used when you want to boost based on how high or low a numeric value is. Cenários que exigem essa função incluem aumentar de acordo com a margem de lucro, maior preço, menor preço ou uma contagem de downloads.Scenarios that call for this function include boosting by profit margin, highest price, lowest price, or a count of downloads. Essa função só pode ser usada com campos duplo e inteiro.This function can only be used with double and integer fields.
Para a função magnitude, é possível inverter o intervalo, do maior para o menor, se você quiser o padrão inverso (por exemplo, para dar mais destaque aos itens com preços mais baixos, do que aos itens com preços mais altos).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). Com um intervalo de preços de $100 a $1, você definiria boostingRangeStart como 100 e boostingRangeEnd como 1 para aumentar os itens com preço inferior.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 devem ser usados quando você deseja aumentar de acordo com a proximidade ou a localização geográfica.- distance should be used when you want to boost by proximity or geographic location. Essa função só pode ser usada com campos Edm.GeographyPoint .This function can only be used with Edm.GeographyPoint fields.
- tag devem ser usados quando você deseja aumentar de acordo com marcas em comum entre documentos e consultas de pesquisa.- tag should be used when you want to boost by tags in common between documents and search queries. Essa função só pode ser usada com campos Edm.String e Collection(Edm.String).This function can only be used with Edm.String and Collection(Edm.String) fields.

Regras para o uso de funçõesRules for using functions

O tipo de função (freshness, magnitude, distance), tag deve ser em minúsculas.Function type (freshness, magnitude, distance), tag must be lower case.

As funções não podem incluir valores nulos ou vazios.Functions cannot include null or empty values. Especificamente, se incluir o nome do campo, você precisará defini-lo como algo.Specifically, if you include fieldname, you have to set it to something.

As funções só podem ser aplicadas a campos filtráveis.Functions can only be applied to filterable fields. Consulte criar índice (API REST do Azure Pesquisa Cognitiva) para obter mais informações sobre campos filtráveis.See Create Index (Azure Cognitive Search REST API) for more information about filterable fields.

As funções só podem ser aplicadas a campos que são definidos na coleção de campos de um índice.Functions can only be applied to fields that are defined in the fields collection of an index.

Depois que o índice for definido, crie o índice carregando o esquema de índice, seguido de documentos.After the index is defined, build the index by uploading the index schema, followed by documents. Consulte criar índice (API REST do azure Pesquisa Cognitiva) e Adicionar, atualizar ou excluir documentos (API rest do Azure pesquisa cognitiva) para obter instruções sobre essas operações.See Create Index (Azure Cognitive Search REST API) and Add, Update or Delete Documents (Azure Cognitive Search REST API) for instructions on these operations. Depois que o índice for criado, você deverá ter um perfil de pontuação funcional que funciona com seus dados de pesquisa.Once the index is built, you should have a functional scoring profile that works with your search data.

ModelosTemplate

Esta seção mostra a sintaxe e o modelo para perfis de pontuação.This section shows the syntax and template for scoring profiles. Consulte Referência de atributos de índice na próxima seção para obter descrições dos atributos.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) "...",   
. . .  

Referência de atributos de índiceIndex attributes reference

Observação

Uma função de pontuação somente pode ser aplicada a campos filtráveis.A scoring function can only be applied to fields that are filterable.

AtributoAttribute DescriçãoDescription
name Obrigatórios.Required. Esse é o nome do perfil de pontuação.This is the name of the scoring profile. Ele segue as mesmas convenções de nomenclatura que os campos.It follows the same naming conventions of a field. O nome deve começar com uma letra, não pode conter pontos, dois-pontos ou símbolos @ e não pode iniciar com a frase "azureSearch" (diferencia maiúsculas de minúsculas).It must start with a letter, cannot contain dots, colons or @ symbols, and cannot start with the phrase ‘azureSearch’ (case-sensitive).
text Contém a propriedade pesos.Contains the weights property.
weights Opcional.Optional. Contém pares de nome-valor que especificam um nome de campo e um peso relativo.Contains name-value pairs that each specify a field name and relative weight. O peso relativo deve ser um inteiro positivo ou o número de ponto flutuante.Relative weight must be a positive integer or floating-point number.

Os pesos são usados para indicar a importância de um campo pesquisável em relação a outro.Weights are used to indicate the importance of one searchable field relative to another.
functions Opcional.Optional. Uma função de pontuação somente pode ser aplicada a campos filtráveis.A scoring function can only be applied to fields that are filterable.
type Necessário para funções de pontuação.Required for scoring functions. Indica o tipo de função a ser usada.Indicates the type of function to use. Os valores válidos incluem magnitude, atualização, distância e marca.Valid values include magnitude, freshness, distance, and tag. Você pode incluir mais de uma função em cada perfil de pontuação.You can include more than one function in each scoring profile. O nome da função deve estar em letras minúsculas.The function name must be lower case.
boost Necessário para funções de pontuação.Required for scoring functions. Um número positivo usado como multiplicador para pontuação bruta.A positive number used as multiplier for raw score. Não pode ser igual a 1.It cannot be equal to 1.
fieldname Necessário para funções de pontuação.Required for scoring functions. Uma função de pontuação só pode ser aplicada a campos que fazem parte da coleção de campos do índice e que são filtráveis.A scoring function can only be applied to fields that are part of the field collection of the index, and that are filterable. Além disso, cada tipo de função introduz restrições adicionais (a atualização é usada com campos datetime, a magnitude com campos de inteiro ou duplo, a distância com campos de local e a marca com campos de cadeia de caracteres ou coleção de cadeias de caracteres).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). Você só pode especificar um único campo por definição de função.You can only specify a single field per function definition. Por exemplo, para usar a magnitude duas vezes no mesmo perfil, você precisaria incluir duas definições de magnitude, uma para cada campo.For example, to use magnitude twice in the same profile, you would need to include two definitions magnitude, one for each field.
interpolation Necessário para funções de pontuação.Required for scoring functions. Define a inclinação para a qual o aumento de pontuação ocorre, do início ao fim do intervalo.Defines the slope for which the score boosting increases from the start of the range to the end of the range. Os valores válidos incluem Linear (padrão), Constante, Quadrática e Logarítmica.Valid values include Linear (default), Constant, Quadratic, and Logarithmic. Confira Set interpolations (Definir interpolações) para obter detalhes.See Set interpolations for details.
magnitude A função de pontuação magnitude é usada para alterar a classificação com base no intervalo de valores de um campo numérico.The magnitude scoring function is used to alter rankings based on the range of values for a numeric field. Alguns dos exemplos de uso mais comuns disso são:Some of the most common usage examples of this are:

- Classificações por estrelas: Altere a pontuação com base no valor do campo "classificação por estrelas".- Star ratings: Alter the scoring based on the value within the “Star Rating” field. Quando dois itens forem relevantes, o item com a classificação mais alta será exibido primeiro.When two items are relevant, the item with the higher rating will be displayed first.
- Margem: Quando dois documentos são relevantes, um varejista pode desejar aumentar os documentos que têm margens mais altas primeiro.- Margin: When two documents are relevant, a retailer may wish to boost documents that have higher margins first.
- Contagens de cliques: Para aplicativos que controlam o clique em ações para produtos ou páginas, você pode usar a magnitude para impulsionar itens que tendem a obter o máximo de tráfego.- 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.
- Contagens de download: Para aplicativos que acompanham downloads, a função magnitude permite que você aumente os itens que têm mais downloads.- Download counts: For applications that track downloads, the magnitude function lets you boost items that have the most downloads.
magnitude | boostingRangeStartmagnitude | boostingRangeStart Define o valor inicial do intervalo em que a magnitude é pontuada.Sets the start value of the range over which magnitude is scored. O valor deve ser um inteiro ou um número de ponto flutuante.The value must be an integer or floating-point number. Para classificações por estrelas de 1 a 4, isso seria 1.For star ratings of 1 through 4, this would be 1. Para mais acima de 50% de margens, isso seria 50.For margins over 50%, this would be 50.
magnitude | boostingRangeEndmagnitude | boostingRangeEnd Define o valor final do intervalo em que a magnitude é pontuada.Sets the end value of the range over which magnitude is scored. O valor deve ser um inteiro ou um número de ponto flutuante.The value must be an integer or floating-point number. Para classificações por estrelas de 1 a 4, isso seria 4.For star ratings of 1 through 4, this would be 4.
magnitude | constantBoostBeyondRangemagnitude | constantBoostBeyondRange Os valores válidos são true ou false (padrão).Valid values are true or false (default). Quando definido como true, o aumento completo continuará a ser aplicado a documentos que tenham um valor para o campo de destino maior do que a extremidade superior do intervalo.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. Se for false, o aumento dessa função não será aplicado a documentos com um valor para o campo de destino que esteja fora do intervalo.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 A função de pontuação de atualização é usada para alterar as pontuações de classificação de itens com base nos valores dos campos DateTimeOffset.The freshness scoring function is used to alter ranking scores for items based on values in DateTimeOffset fields. Por exemplo, um item com uma data mais recente pode ter classificação mais alta do que itens mais antigos.For example, an item with a more recent date can be ranked higher than older items.

Também é possível classificar itens como eventos de calendário com datas futuras, de forma que os itens mais próximos da apresentação possam ser classificados mais altos do que os itens no futuro.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.

Na versão atual do serviço, uma extremidade do intervalo será corrigida para a hora atual.In the current service release, one end of the range will be fixed to the current time. A outra extremidade é um momento no passado com base no boostingDuration.The other end is a time in the past based on the boostingDuration. Para aumentar um intervalo de tempo no futuro, use um negativo boostingDuration.To boost a range of times in the future, use a negative boostingDuration.

A taxa à qual o aumento é alterado em um intervalo máximo e mínimo é determinada pela Interpolação é aplicada ao perfil de pontuação (consulte a figura abaixo).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). Para inverter o fator de aumento aplicado, escolha um fator de aumento que seja inferior a 1.To reverse the boosting factor applied, choose a boost factor of less than 1.
freshness | boostingDurationfreshness | boostingDuration Define um período de expiração após o qual o aumento será interrompido para um documento específico.Sets an expiration period after which boosting will stop for a particular document. Consulte Definir boostingDuration na próxima seção para obter a sintaxe e exemplos.See Set boostingDuration in the following section for syntax and examples.
distance A função de pontuação distância é usada para afetar a pontuação de documentos com base em sua distância ou proximidade em relação a um local geográfico de referência.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. A localização de referência é fornecida como parte da consulta em um parâmetro (usando a opção de cadeia de caracteres scoringParameterquery) como um argumento 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 Um parâmetro a ser passado em consultas para usar como local de referência.A parameter to be passed in queries to use as reference location. scoringParameter é um parâmetro de consulta.scoringParameter is a query parameter. Consulte Pesquisar documentos (API REST do Azure Pesquisa Cognitiva) para obter descrições dos parâmetros de consulta.See Search Documents (Azure Cognitive Search REST API) for descriptions of query parameters.
distance | boostingDistancedistance | boostingDistance Um número que indica a distância em quilômetros do local de referência em que o intervalo de aumento termina.A number that indicates the distance in kilometers from the reference location where the boosting range ends.
tag A função de pontuação marca é usada para afetar a pontuação de documentos com base em marcas em documentos e consultas de pesquisa.The tag scoring function is used to affect the score of documents based on tags in documents and search queries. Documentos com marcas em comum com a consulta de pesquisa serão ser aumentados.Documents that have tags in common with the search query will be boosted. As marcações para a consulta de pesquisa são fornecidas como um parâmetro de pontuação em cada solicitação de pesquisa (usando o parâmetro de consulta 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 Um parâmetro a ser passado em consultas para especificar as marcações para uma solicitação específica.A parameter to be passed in queries to specify tags for a particular request. scoringParameter é um parâmetro de consulta.scoringParameter is a query parameter. Consulte Pesquisar documentos (API REST do Azure Pesquisa Cognitiva) para obter descrições dos parâmetros de consulta.See Search Documents (Azure Cognitive Search REST API) for descriptions of query parameters.
functionAggregation Opcional.Optional. Aplicável apenas quando funções são especificadas.Applies only when functions are specified. Os valores válidos incluem: soma (padrão), média, mínimo, máximo e firstMatching.Valid values include: sum (default), average, minimum, maximum, and firstMatching. Uma pontuação de pesquisa é um valor único calculado por meio de diversas variáveis, incluindo várias funções.A search score is single value that is computed from multiple variables, including multiple functions. Esse atributo indica como os aumentos de todas as funções são combinados em um único aumento agregado que é aplicado à pontuação do documento base.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. A pontuação base é baseada no valor TF-IDF computado do documento e da consulta de pesquisa.The base score is based on the tf-idf value computed from the document and the search query.
defaultScoringProfile Ao executar uma solicitação de pesquisa, se nenhum perfil de pontuação for especificado, a pontuação padrão será usada (TF-IDF somente).When executing a search request, if no scoring profile is specified, then default scoring is used (tf-idf only).

Um nome de perfil de Pontuação padrão pode ser definido aqui, fazendo com que o Azure Pesquisa Cognitiva Use esse perfil quando nenhum perfil específico é fornecido na solicitação de pesquisa.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.

Definir interpolaçõesSet interpolations

As interpolações permitem que você defina a forma da inclinação usada para pontuação.Interpolations allow you to set the shape of the slope used for scoring. Como a pontuação é decrescente, a inclinação está sempre diminuindo, mas é a interpolação que determina a curva da inclinação descendente.Because scoring is high to low, the slope is always decreasing, but the interpolation determines the curve of the downward slope. As seguintes interpolações podem ser usadas:The following interpolations can be used:

InterpolaInterpolation DescriçãoDescription
linear Para itens que estão dentro do intervalo máximo e mínimo, o aumento aplicado ao item será feito em uma quantidade constantemente decrescente.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 é a interpolação padrão para um perfil de pontuação.Linear is the default interpolation for a scoring profile.
constant Para itens que estão dentro do intervalo inicial e final, um aumento constante será aplicado aos resultados de classificação.For items that are within the start and ending range, a constant boost will be applied to the rank results.
quadratic Em comparação com uma interpolação Linear que tem um aumento constantemente decrescente, a Quadrática inicialmente diminuirá em menor ritmo e, em seguida, à medida que se aproximar do intervalo final, diminuirá em um intervalo muito maior.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. Essa opção de interpolação não é permitida em funções de pontuação de marca.This interpolation option is not allowed in tag scoring functions.
logarithmic Em comparação com uma interpolação Linear que tem um aumento constantemente decrescente, a Logarítmica inicialmente diminuirá em um ritmo maior e, em seguida, à medida que se aproximar do intervalo final, diminuirá em um intervalo muito menor.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. Essa opção de interpolação não é permitida em funções de pontuação de marca.This interpolation option is not allowed in tag scoring functions.

Constante, linear, quadrático log10 linhas no gráficoConstant, linear, quadratic, log10 lines on graph

Definir boostingDurationSet boostingDuration

boostingDuration é um atributo da função freshness.boostingDuration is an attribute of the freshness function. Você pode usá-lo para definir um período de expiração após o qual o aumento será interrompido para um documento específico.You use it to set an expiration period after which boosting will stop for a particular document. Por exemplo, para aumentar uma linha de produtos ou marca por um período promocional de 10 dias, você especificaria o período de 10 dias como "P10D" para esses documentos.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 deve ser formatado como um valor XSD de "dayTimeDuration" (um subconjunto restrito de um valor de duração ISO 8601).boostingDuration must be formatted as an XSD "dayTimeDuration" value (a restricted subset of an ISO 8601 duration value). O padrão para isso é: "P [nD] [T [nH] [nM] [nS]]".The pattern for this is: "P[nD][T[nH][nM][nS]]".

A tabela a seguir fornece vários exemplos.The following table provides several examples.

DurationDuration boostingDurationboostingDuration
1 dia1 day "P1D""P1D"
2 dias e 12 horas2 days and 12 hours "P2DT12H""P2DT12H"
15 minutos15 minutes "PT15M""PT15M"
30 dias, 5 horas, 10 minutos e 6,334 segundos30 days, 5 hours, 10 minutes, and 6.334 seconds "P30DT5H10M6.334S""P30DT5H10M6.334S"

Para obter mais exemplos, consulte Esquema XML: tipos de dados (site W3.org).For more examples, see XML Schema: Datatypes (W3.org web site).

Confira tambémSee also