A extensibilidade do VTEX Master Data permite configurar campos como Buscável ou Filtro. Mas o que querem dizer essas configurações? O objetivo deste artigo é responder a essa pergunta.
Primeiro, vamos explicar o fluxo das consultas. Existem dois tipos:
- Consulta pelo id;
- Consulta de uma coleção de documentos.
Consulta pelo id
Esse tipo de consulta é a forma mais rápida de recuperação de dados. O id é a referência mais forte que nos indica o endereço exato de armazenamento.
Sugerimos que sempre se utilize o atributo id. Ele sempre será mais rápido que qualquer outro tipo de consulta ao VTEX Master Data.
Consulta de uma coleção de documentos
Neste tipo de consulta os campos marcados como Buscável ou Filtro possuem relevância. Mas não somente eles devem ser considerados. Os índices também fazem parte desse processo. A melhor forma de entendermos o fluxo desse tipo de consulta é por meio de um exemplo.
No nosso exemplo, temos a entidade de dados Cliente
, sigla CL
. Ela tem as seguintes configurações:
| Nome do campo | Tipo | é filtro | é buscável |
| --------------| ------------| ------- | ---------- |
| Email | Email | sim | sim |
| Nome | Varchar 100 | não | sim |
| Idade | Integer | sim | não |
| TamanhoRoupa | Varchar 10 | não | não |
É Filtro
O atributo é filtro
indica que poderemos realizar um filtro por meio de determinado(s) campo(s). Em nosso exemplo, poderemos realizar filtro por meio dos campos Email
e Idade
.
Na API, temos como fazer a seguinte consulta na rota search
:
- /dataentities/CL/search?Email=meuemail@provider.com
- /dataentities/CL/search?Idade=18
Se for realizado um filtro pelo campo Nome
, que não foi marcado como filtro, a resposta será um Bad Request
informando que o campo Nome
não foi configurado para filtro.
É buscável
O atributo é buscável
indica que poderemos fazer uma busca por meio do atributo _keyword
da rota search
. O _keyword
é utilizado para o seguinte cenário: “Quero todos os documentos que tenham o valor maria
.”
A chamada da API, neste caso, será a seguinte:
/dataentities/CL/search?_keyword=maria
Os asteriscos são indicadores para uma consulta parcial. Ou seja, não serão buscados os documentos que tenham o valor exato maria
, mas os que tenham em alguma parte esse grupo de caracteres.
No resultado dessa consulta teríamos os documentos que tenham nos atributos Nome
e Email
valores como: Nome=Maria Joaquina | Email=maria@provider.com.
Consulta por índices
O índice é um recurso do VTEX Master Data que funciona como um “atalho” para encontrar documentos. Ele não passa pela Engine de Busca (tecnologia utilizada para consultas com filtros, busca fulltext e agregação).
Utilizando esse recurso, a consulta é mais rápida que um filtro normal. Contudo, quanto maior a quantidade de índices, mais lento fica a gravação de documentos. Sempre tenha cuidado na sua modelagem para que o processo de gravação e leitura seja o mais eficiente possível na resolução do seu cenário.
A consulta por índices é realizada por meio da rota search
. Dentro do fluxo da busca, quando o VTEX Master Data está interpretando a query, ele faz a seguinte pergunta:
Esse filtro compõe um índice?
Se a resposta for positiva, a consulta é realizada através do índice.
E a reindexação?
A reindexação é um processo em background que faz o seguinte:
- Realiza a leitura das configurações de campos marcados como Filtro e Buscável;
- Atualiza a Engine de Busca com os novos campos;
- Realiza uma consulta a todos os documentos armazenados e atualiza os valores na Engine de Busca.
Quando os campos de um documento são gravados na Engine de Busca, dizemos que esse documento está indexado. Por isso o nome “reindexação”.
Atenção: esse recurso surte efeito somente nos casos em que os campos marcados como é filtro
ou é buscável
são alterados.
The post Entendendo o funcionamento das consultas no Master Data appeared first on Help Center - VTEX.