Aumenta los resultados

En esta página, se describe cómo mejorar los resultados de la búsqueda.

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 Filtrado y orden para ver la sintaxis de expresión de filtro.

Boost

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

public static SearchResponse searchProductsWithBoostSpec(String query, int pageSize,
    String condition, float boostStrength) throws IOException, InterruptedException {
  SearchServiceClient searchClient = getSearchServiceClient();

  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();

  SearchResponse response = searchClient.search(searchRequest).getPage().getResponse();

  searchClient.shutdownNow();
  searchClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

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 mejora como la siguiente:

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 Filtrado y orden.