Aumenta los resultados

Puedes especificar los registros que se deben elevar en las búsquedas.

Instructivo de boosting

En este instructivo, se muestran algunos ejemplos de boosting de productos.


Para seguir la guía paso a paso sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:

GUIARME


Conjunto de datos de ejemplo

En esta página, se usa el siguiente conjunto de datos como ejemplo. Solo se incluyen los campos necesarios para la explicación.

Requisitos previos

Consulta Filtra y ordena los resultados para ver la sintaxis de expresión de filtro.

Mejorar

Con la mejora, puedes controlar la clasificación del resultado mediante la aplicación de una mejora para priorizar o reducir la prioridad de los resultados.

Por ejemplo, si buscas "Bocina de Google", obtendrás "nest_mini_2nd_gen", "nest_audio", "nest_hub_max", "nest_hub", "google_home_max" y "google_home_mini" sin un orden específico.

Java

import com.google.cloud.retail.v2.SearchRequest;
import com.google.cloud.retail.v2.SearchRequest.BoostSpec;
import com.google.cloud.retail.v2.SearchRequest.BoostSpec.ConditionBoostSpec;
import com.google.cloud.retail.v2.SearchResponse;
import com.google.cloud.retail.v2.SearchServiceClient;

public static void searchProductsWithBoostSpec(String query, int pageSize,
    String condition, float boostStrength) throws IOException, InterruptedException {
  BoostSpec boostSpec = BoostSpec.newBuilder()
      .addConditionBoostSpecs(ConditionBoostSpec.newBuilder()
          .setCondition(condition)
          .setBoost(boostStrength)
          .build())
      .build();

  SearchRequest searchRequest = SearchRequest.newBuilder()
      .setPlacement(DEFAULT_SEARCH_PLACEMENT_NAME)
      .setBranch(DEFAULT_BRANCH_NAME)
      .setVisitorId(VISITOR_ID)
      .setQuery(query)
      .setPageSize(pageSize)
      .setBoostSpec(boostSpec)
      .build();

  try (SearchServiceClient searchClient = SearchServiceClient.create()) {
    SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();
    System.out.println("Search response: " + searchResponse);
  }
}

Supongamos que deseas priorizar los productos más económicos (menos de 95 dólares) y reducir la prioridad de los más costosos (más de 95 dólares). Puedes aplicar una especificación de aumento de la siguiente manera:

JSON

{
  condition_boost_specs {
    condition: "price: IN(*, 95.0e)"
    boost: 0.5
  }
  condition_boost_specs {
    condition: "price: IN(95.0e, *)"
    boost: -0.5
  }
}

En el resultado, "nest_mini_2nd_gen", "google_home_mini" y "nest_hub" pueden ser los primeros tres, mientras que "nest_audio", "nest_hub_max" y "google_home_max" pueden ser los tres últimos. Sin embargo, no se garantiza ningún orden específico, que es diferente del orden por precio, como se explica en Filtrar y ordenar resultados.