Quadro de pesquisa

Visão Geral
O Search Framework tem como objetivo facilitar ao máximo a criação de mecanismos de busca para o SuiteCRM, com o mínimo de impacto na experiência do usuário, permitindo a reutilização de elementos da IU.

Seus componentes residem no lib \ Search. Uma visão geral da estrutura do arquivo seguirá:

lib\Search
├── Exceptions
│   ├── SearchEngineNotFoundException.php
│   ├── SearchException.php
│   ├── SearchInvalidRequestException.php
│   └── SearchUserFriendlyException.php
├── UI
│   ├── MVC
│   │   ├── Controller.php
│   │   └── View.php
│   ├── templates
│   │   ├── search.form.tpl
│   │   └── search.results.tpl
│   ├── SearchFormController.php
│   ├── SearchFormView.php
│   ├── SearchResultsController.php
│   ├── SearchResultsView.php
│   └── SearchThrowableHandler.php
├── SearchEngine.php
├── SearchQuery.php
├── SearchResults.php
└── SearchWrapper.php

 

 

Classes Principais

SearchWrapper
A principal classe do Search Framework que permite realizar pesquisas facilmente usando métodos estáticos.

 

Motor de busca
Classe abstrata que contém utilitários para classes que a implementam. Os métodos integrados cuidam de mostrar os resultados e a visualização da pesquisa e podem ser substituídos, se necessário. As subclasses são necessárias apenas para implementar o método search (SearchQuery $ query), embora seja recomendado substituir o método validateQuery (SearchQuery $ query) também.

 

Consulta de pesquisa
O objeto SearchQuery envolve todos os parâmetros usados ​​pelo SearchWrapper e SearchEngine.

Possui um conjunto de métodos de fábrica para preencher os parâmetros de maneira padrão.

Ele contém os seguintes campos (disponíveis por meio de getters):
$query ─ uma string contendo a consulta de pesquisa. Quando vazio, nenhuma pesquisa será realizada.

$size ─ Um int especificando quantos resultados são solicitados. O padrão é 10.

$from ─ Um int usado para paginação, efetivamente um deslocamento. O padrão é 0.

$engine ─ uma string contendo o nome da classe SearchEngine a ser usada. Padrões de acordo com a configuração.

$options ─ uma matriz contendo opções que podem ser necessárias para SearchEngines personalizados.

 

Procurar Resultados
A classe SearchResults contém os resultados de uma pesquisa, junto com metadados como o tempo da pesquisa, o número total de ocorrências e a pontuação dos resultados.

Ele contém os seguintes campos (disponíveis por meio de getters):
$hits ─ uma matriz contendo os resultados da pesquisa. Os resultados são aninhados por módulo.

$scores ─ uma matriz com índices correspondentes aos de $ hits, contendo um float especificando os resultados.

$options ─ uma matriz contendo opções personalizadas para serem usadas pelos mecanismos.

$searchTime ─ um float com a quantidade de segundos que levou para realizar a pesquisa.

$total ─ Um int com o número total de ocorrências (sem paginação).

$groupedByModule ─ Sinalizador que especifica se o array $ hits é agrupado por módulo.

 

Diagrama de Comunicação
O diagrama abaixo ilustra como funciona o processo de pesquisa, quando um usuário realiza uma pesquisa.

A classe Search está localizada em modules / Home / e é efetivamente o controlador que lida com a solicitação do navegador.