Introdução ao Retail Search - Ordenação e filtros

 


Dependendo do catálogo de produtos é possível que ao cliente queira ordenar os produtos por avaliação, preço, etc. Para isso podemos utilizar a ordenação da retail search.

Exemplo de código:

import google.auth
from google.cloud.retail import SearchRequest, SearchServiceClient

project_id = google.auth.default()[1]

# get search service request:
def get_search_request(query: str, order: str):
    default_search_placement = (
        "projects/"
        + project_id
        + "/locations/global/catalogs/default_catalog/placements/default_search"
    )

    search_request = SearchRequest()
    search_request.placement = default_search_placement
    search_request.query = query
    search_request.order_by = order
    search_request.visitor_id = "999999"  # A unique identifier to track visitors
    search_request.page_size = 10

    print("---search request---")
    print(search_request)

    return search_request

# call the Retail Search:
def search():
    # TRY DIFFERENT ORDERING EXPRESSIONS HERE:
    order = "price desc"

    search_request = get_search_request("Blusa", order)
    search_response = SearchServiceClient().search(search_request)

    print("---search response---")
    print(search_response)
    return search_response

search()
# [END retail_search_for_products_with_ordering]

Também é possível filtrar itens com base em algumas condições, como cor ou modelo disponível.

Exemplo de código:

import google.auth
from google.cloud.retail import SearchRequest, SearchServiceClient

project_id = google.auth.default()[1]

# get search service request:
def get_search_request(query: str, _filter: str):
    default_search_placement = (
        "projects/"
        + project_id
        + "/locations/global/catalogs/default_catalog/placements/default_search"
    )

    search_request = SearchRequest()
    search_request.placement = default_search_placement  # Placement is used to identify the Serving Config name.
    search_request.query = query
    search_request.filter = _filter
    search_request.page_size = 15
    search_request.visitor_id = "8989879"  # A unique identifier to track visitors
    search_request.page_size = 15

    print("---search request:---")
    print(search_request)

    return search_request

# call the Retail Search:
def search():
    # TRY DIFFERENT FILTER EXPRESSIONS HERE:
    filter_ = '(colorFamilies: ANY("Preto"))'

    search_request = get_search_request("Casaco", filter_)
    search_response = SearchServiceClient().search(search_request)
    print("---search response---")
    print(search_response)
    return search_response

search()

Referências:

https://cloud.google.com/retail/docs/search-basic?hl=pt-br#querying_tutorial