Pular para o conteúdo principal

getPagesByVectorSearch

Busca semântica (vetorial) para páginas.

Descrição

Este método realiza uma busca semântica (vetorial) para páginas a partir de uma consulta em linguagem natural - ele corresponde ao significado em vez de palavras-chave exatas. Ele retorna uma Promise que se resolve em um objeto IPagesResponse - um contêiner com items (as páginas) e total - não um array simples.

Páginas.getPagesByVectorSearch(

body*, langCode, offset, limit

);

Esquema de parâmetros

Esquema

body(obrigatório): IPagesVectorSearch
Corpo da busca vetorial
exemplo:

{ queryText: "winter sale" }

body.queryText(obrigatório): string
Consulta de busca em linguagem natural.
exemplo: "promoção de inverno"

body.vectorDistanceThreshold: number
Substituição do limite de distância do cosseno (0..2).
exemplo: 0.3

body.maxHits: number
Candidatos Top-K buscados antes da paginação. Padrão: 100. Máx: 500.
exemplo: 10

body.debug: boolean
Quando verdadeiro, cada item retornado recebe um campo distance.
exemplo: false

langCode: string
Código do idioma. Padrão: "en_US"
exemplo: "en_US"

offset: number
Parâmetro para paginação. Padrão: 0
exemplo: 0

limit: number
Parâmetro para paginação. Padrão: 30
exemplo: 30

Exemplos

Exemplo mínimo

const response = await Pages.getPagesByVectorSearch({ queryText: 'winter sale' });

Exemplo com atributos

const response = await Pages.getPagesByVectorSearch(
{
queryText: 'winter sale',
vectorDistanceThreshold: 0.3,
maxHits: 50,
debug: true,
},
'en_US',
0,
30,
);

Exemplo de resposta

{
"items": [
{
"id": 9,
"config": {},
"depth": 1,
"parentId": 8,
"pageUrl": "blog1",
"attributeSetIdentifier": null,
"localizeInfos": {
"title": "Blog 1",
"htmlContent": "",
"plainContent": "",
"menuTitle": "Blog 1"
},
"isVisible": true,
"products": 0,
"childrenCount": 0,
"type": "common_page",
"position": 1,
"templateIdentifier": null,
"isSync": false,
"categoryPath": "blog/blog1",
"rating": {},
"attributeValues": {},
"moduleFormConfigs": []
}
],
"total": 1
}

Esquema de resposta

Esquema: IPagesResponse

items: IPagesEntity[]
Array de objetos de página encontrados.

items.id: number
O identificador do objeto.
exemplo: 8

items.parentId: number | null
O id da página pai, se contiver null, então é a página de nível superior.
exemplo: 10

items.pageUrl: string
URL única da página.
exemplo: "blog"

items.depth: number
Profundidade de aninhamento da página em relação ao parentId.
exemplo: 10

items.localizeInfos: ILocalizeInfo
O nome da página, levando em conta a localização.
exemplo:

{
"title": "Blog",
"menuTitle": "Blog",
"htmlContent": "",
"plainContent": ""
}

items.isVisible: boolean
Um sinal de visibilidade da página.
exemplo: true

items.type: PageType
Tipo de página.
exemplo: "common_page"

items.templateIdentifier: string | null
ID do usuário do template vinculado.
exemplo: "template"

items.attributeSetIdentifier: string | null
ID do conjunto de atributos.
exemplo: "page"

items.attributeValues: IAttributeValues
Mapa de valores de atributos indexados por marcador; objeto vazio quando nenhum.
exemplo:

{
"text": {
"type": "string",
"value": "some text",
"position": 0,
"additionalFields": []
}
}

items.isSync: boolean
Indicação de indexação da página.
exemplo: true

items.template: object
Objeto do template.
exemplo:

{}

items.position: number
Número do item (para ordenação).
exemplo: 2

items.config: Record<string, number>
Configurações de saída para páginas de catálogo.
exemplo:

{
"rowsPerPage": 1,
"productsPerRow": 1
}

items.products: number
O número de produtos vinculados à página.
exemplo: 0

items.childrenCount: number
Contagem de filhos.
exemplo: 1

items.blocks: IBlockEntity[] | string[]
blocos.
exemplo:

{
"id": 4,
"attributeSetIdentifier": null,
"title": "Template",
"generalTypeId": 4,
"identifier": "template",
"version": 0,
"generalTypeName": "catalog_page",
"attributeValues": {},
"position": 1
}

items.blocks.attributeValues: IAttributeValues
Mapa de valores de atributos indexados por marcador; objeto vazio quando nenhum.
exemplo:

{
"block-text": {
"type": "string",
"value": "some text",
"isIcon": false,
"position": 0,
"additionalFields": [],
"isProductPreview": false
}
}

items.blocks.id: number
Identificador único do bloco.
exemplo: 1234

items.blocks.localizeInfos: ILocalizeInfo
Informações de localização para o bloco.
exemplo:

{
"key": "value"
}

items.blocks.version: number
Versão da entidade do bloco.
exemplo: 1

items.blocks.identifier: string
Identificador de string único para o bloco.
exemplo: "block1"

items.blocks.type: BlockType
Tipo do bloco.
exemplo: "product"

items.blocks.position: number
Posição do bloco para ordenação.
exemplo: 1

items.blocks.templateIdentifier: string | null
Identificador do template usado pelo bloco, ou null se não aplicável.
exemplo: "template1"

items.blocks.isVisible: boolean
Indica se o bloco é visível.
exemplo: true

items.blocks.countElementsPerRow: number
Número de elementos exibidos por linha no bloco, se aplicável.
exemplo: 3

items.blocks.quantity: number
Quantidade de itens no bloco, se aplicável.
exemplo: 5

items.blocks.similarProducts: IProductsResponse
Resposta contendo produtos semelhantes associados ao bloco.
exemplo:

{
"total": 10,
"items": []
}

items.blocks.products: IProductsEntity[]
Array de entidades de produtos associadas ao bloco.
exemplo:

[
{
"id": 1,
"name": "Product 1"
},
{
"id": 2,
"name": "Product 2"
}
]

items.moduleFormConfigs: Array<IFormConfig>
Configurações de formulário do módulo vinculadas à página.

items.rating: IRating
Dados de avaliação.

items.total: string
Total de produtos vinculados à página.
exemplo: "10"

items.categoryPath: string | null
String do caminho da categoria; null para páginas aninhadas que não têm seu próprio caminho de categoria.
exemplo: "catalog"
items.distance: number
Distância do cosseno em relação à consulta. Retornado apenas pelo endpoint de busca semântica (vetorial) quando debug: true é passado no corpo da busca.
exemplo: 0.12

total: number
Total de registros encontrados.
exemplo: 100

ℹ️ A busca semântica corresponde ao significado, não ao texto literal. Para correspondência de palavras-chave em todos os tipos de entidades de uma vez, use globalSearch().