Pesquisar endpoint

O endpoint /search na API do Reactor fornece uma maneira de encontrar recursos que correspondem aos critérios desejados, por meio de uma consulta.

Os seguintes tipos de recursos de API podem ser pesquisados, utilizando a mesma estrutura de dados que os documentos baseados em recursos retornados pela API:

  • audit_events
  • builds
  • callbacks
  • data_elements
  • environments
  • extension_packages
  • extensions
  • hosts
  • libraries
  • properties
  • rule_components
  • rules

Todas as consultas têm como escopo sua empresa atual e as propriedades acessíveis.

IMPORTANTE

A funcionalidade de pesquisa tem as seguintes ressalvas e exceções:

  • meta não é pesquisável nem é retornado nos resultados de pesquisa.
  • Os campos de esquema para delegados de pacote de extensão (ações, condições etc.) são pesquisáveis como texto, não como uma estrutura de dados aninhada.
  • Atualmente, as consultas de intervalo só aceitam números inteiros.

Para obter informações mais detalhadas sobre como usar essa funcionalidade, consulte o manual de pesquisa.

Introdução

O endpoint usado neste manual faz parte da API do Reactor. Antes de continuar, consulte o Guia de introdução para obter informações importantes sobre como realizar a autenticação na API.

Executar uma pesquisa

Você pode realizar uma pesquisa fazendo uma solicitação de POST.

Formato da API

POST /search

Solicitação

curl -X POST \
  https://reactor.adobe.io/search \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H "Content-Type: application/vnd.api+json" \
  -H 'Accept: application/vnd.api+json;revision=1' \
  -d '{
        "data" : {
          "from": 0,
          "size": 25,
          "query": {
            "attributes.name": {
              "value": "Performance"
            },
            "attributes.revision_number": {
              "range": {
                "lte": "2",
                "gt": "0"
              }
            }
          },
          "sort": [
            {
              "attributes.revision_number": "desc"
            }
          ],
          "resource_types": [
            "data_elements",
            "rule_components"
          ]
        }
      }'
Propriedade Descrição
from O número de resultados para compensar a resposta.
size A quantidade máxima de resultados a serem retornados. Os resultados não podem exceder 100 itens.
query Um objeto que representa uma consulta de pesquisa. Para cada propriedade nesse objeto, a chave deve representar um caminho de campo para consulta e o valor deve ser um objeto cujas subpropriedades determinem o que consultar.

Para cada caminho de campo, é possível usar as seguintes subpropriedades:
  • exists: retornará true se o campo existir no recurso.
  • value: retornará true se o valor do campo corresponder ao valor dessa propriedade.
  • value_operator: lógica booliana usada para determinar como uma consulta de value deve ser tratada. Os valores permitidos são AND e OR. Quando excluída, a lógica AND é presumida. Consulte a seção sobre lógica do operador value para obter mais informações.
  • range Retornará true se o valor do campo estiver em um intervalo numérico específico. O intervalo em si é determinado pelas seguintes subpropriedades:
    • gt: Maior que o valor fornecido, não inclusivo.
    • gte: Maior que ou igual ao valor fornecido.
    • lt: Menor que o valor fornecido, não inclusivo.
    • lte: Menor que ou igual ao valor fornecido.
sort Uma matriz de objetos, indicando a ordem na qual classificar os resultados. Cada objeto deve conter uma única propriedade: a chave representa o caminho do campo de acordo com o qual classificar, e o valor representa a ordem de classificação (asc para crescente, desc para decrescente).
resource_types Uma matriz de sequências de caracteres, indicando os tipos de recurso específicos a serem pesquisados.

Resposta

Uma resposta bem-sucedida retorna uma lista de recursos correspondentes para a consulta. Para obter detalhes sobre como a API determina correspondências para valores específicos, consulte a seção do apêndice sobre convenções correspondentes.

{
  "data": [
    {
      "id": "DE5d11b3ed301d4ce99b530a5121e392b2",
      "type": "data_elements",
      "attributes": {
        "created_at": "2020-12-14T17:36:09.045Z",
        "deleted_at": null,
        "dirty": true,
        "enabled": true,
        "name": "Performance Indicator",
        "published": false,
        "published_at": null,
        "revision_number": 1,
        "updated_at": "2020-12-14T17:36:09.045Z",
        "clean_text": false,
        "default_value": null,
        "delegate_descriptor_id": "kessel-test::dataElements::dom-attribute",
        "force_lower_case": false,
        "review_status": "unsubmitted",
        "storage_duration": null,
        "settings": "{\"elementProperty\":\"html\",\"elementSelector\":\".target-element\"}"
      },
      "relationships": {
        "libraries": {
          "links": {
            "related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/libraries"
          }
        },
        "revisions": {
          "links": {
            "related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/revisions"
          }
        },
        "notes": {
          "links": {
            "related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/notes"
          }
        },
        "property": {
          "links": {
            "related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/property"
          },
          "data": {
            "id": "PR97d92a379a5f48758947cdf44f607a0d",
            "type": "properties"
          }
        },
        "origin": {
          "links": {
            "related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/origin"
          },
          "data": {
            "id": "DE5d11b3ed301d4ce99b530a5121e392b2",
            "type": "data_elements"
          }
        },
        "extension": {
          "links": {
            "related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/extension"
          },
          "data": {
            "id": "EX0348d463358c4c89afe726245576f112",
            "type": "extensions"
          }
        },
        "updated_with_extension_package": {
          "links": {
            "related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/updated_with_extension_package"
          },
          "data": {
            "id": "EP75db2452065b44e2b8a38ca883ce369a",
            "type": "extension_packages"
          }
        },
        "updated_with_extension": {
          "links": {
            "related": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2/updated_with_extension"
          },
          "data": {
            "id": "EX1cc78b39339242da82a0e0752fa53375",
            "type": "extensions"
          }
        }
      },
      "links": {
        "property": "https://reactor.adobe.io/properties/PR97d92a379a5f48758947cdf44f607a0d",
        "origin": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2",
        "self": "https://reactor.adobe.io/data_elements/DE5d11b3ed301d4ce99b530a5121e392b2",
        "extension": "https://reactor.adobe.io/extensions/EX0348d463358c4c89afe726245576f112"
      },
      "meta": {
        "latest_revision_number": 1
      }
    }
  ],
  "meta": {
    "total_hits": 1
  }
}

Apêndice

A seção a seguir contém informações adicionais sobre o uso do endpoint /search.

Lógica do operador de valor

Os valores de consulta de pesquisa são divididos em termos para corresponder a documentos indexados. Entre cada termo, uma relação AND é feita.

Quando você usa AND como o value_operator, um valor de consulta de My Rule Holiday Sale é interpretado como documentos com um campo que contém My AND Rule AND Holiday AND Sale.

Quando você usa OR como o value_operator, um valor de consulta de My Rule Holiday Sale é interpretado como documentos com um campo que contém My OR Rule OR Holiday OR Sale. Quanto mais termos corresponderem, maior será o match_score. Devido à natureza da correspondência de termos parciais, quando nada corresponde ao valor desejado, é possível obter um conjunto de resultados no qual o valor é correspondido somente em um nível muito básico, como alguns caracteres de texto.

Convenções de correspondência

A pesquisa se destina a esclarecer o grau de relevância de um documento para uma consulta fornecida. A forma como os dados do documento são analisados e indexados afeta diretamente isso.

A tabela a seguir detalha as convenções de correspondência para tipos de campos comuns:

Tipo de campo Convenções de correspondência
Strings Texto com uma análise de termo parcial, não diferencia maiúsculas de minúsculas
Valores de enumeração Correspondência exata, diferencia maiúsculas de minúsculas
Inteiros Correspondência exata
Flutuantes Correspondência exata
Carimbos de data e hora Correspondência exata (formato DateTime)
Nomes de exibição Texto com uma análise de termo parcial, não diferencia maiúsculas de minúsculas

Há convenções adicionais para campos específicos que aparecem na API:

Campo Convenções de correspondência
id Correspondência exata, diferencia maiúsculas de minúsculas
delegate_descriptor_id Correspondência exata. Diferencia maiúsculas de minúsculas, com termos divididos em ::
name Correspondência exata, diferencia maiúsculas de minúsculas
settings Texto com uma análise de termo parcial, não diferencia maiúsculas de minúsculas
type Correspondência exata, diferencia maiúsculas de minúsculas

Nesta página