Búsqueda elástica usando NEST Field Boosting

Estoy usando Elastic Search en C # usando el cliente fuertemente tipado de NEST. Tengo un índice que contiene entradas:

[ElasticType(Name = "Entry", IdProperty = "Id")]
public class Entry
{
    public string Id { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public string Award { get; set; }
    public int Year { get; set; }
}

Donde Año es el año de la entrada, por ejemplo, 2012, y Premio es el tipo de Premio que ganó la Entrada, que puede ser nulo.

Luego quiero buscar en estas entradas mediante el impulso de diferentes propiedades. En el siguiente código, quiero que los resultados tengan una clasificación más alta que coincida con el Título que con los que coinciden con la Descripción.

private IQueryResponse<Entry> GetMatchedEntries(string searchText)
{
    return _elasticClient.Search<Entry>(
                body =>
                body.Query(q => 
                           q.QueryString(qs => 
                                         qs.OnFieldsWithBoost(d => 
                                                              d.Add(entry => entry.Title, 5.0)
                                                              .Add(entry => entry.Description, 2.0))
                           .Query(searchText))));
}

Ahora me han pedido que aumente los resultados por aquellos que han ganado Premios, y que también aumente las Entradas más nuevas (es decir, por el Año).

¿Cómo hago esto? ¿Es algo que debe hacerse como parte del servicio de indexación o como parte de la búsqueda?

Respuestas a la pregunta(1)

Su respuesta a la pregunta