Olá!
Hoje falaremos sobre o mecanismo de busca de texto completo Elasticsearch (doravante ES), com o qual
A plataforma Docsvision 5.5 está em execução.
Assim que a instalação for concluída, vá para http://localhost:9200/
A página de status ES deverá ser exibida, exemplo abaixo:
Se a página não abrir, certifique-se de que o serviço Elasticsearch esteja em execução. No Windows isso é
Serviço Elasticsearch.
3. Conecte-se ao Docsvision
A conexão com o Elasticsearch é configurada na página de serviço de texto completo
indexação.
Aqui você precisa indicar:
1. Endereço do servidor Elasticsearch (definido durante a instalação).
2. Cadeia de conexão com o SGBD.
3. Endereço Docsvision (no formato ConnectAddress=http://SERVER/DocsVision/StorageServer/StorageServerService.
asmx)
4. Na aba “Cartões” e “Diretórios” é necessário configurar os dados que
precisa ser indexado.
Você também precisa ter certeza de que a conta sob a qual o serviço Docsvision está sendo executado
Serviço de Indexação Fulltext, tem acesso ao banco de dados Docsvision em MS SQL.
Após a conexão, você precisa garantir que os trabalhos com o prefixo sejam criados no banco de dados MS SQL:
"DV:FullText_<DBNAME>_CardWithFilesPrepareRange"
Após concluir as configurações, a barra de pesquisa será desbloqueada no cliente Windows.
4. API REST elástica
O administrador pode obter diversas informações sobre o funcionamento do Elasticsearch utilizando
fornecido pela API REST.
Nos exemplos a seguir usaremos o Insomnia Rest Client.
Obtendo informações gerais
Assim que o serviço estiver instalado e funcionando (http://localhost:9200/ no navegador), você pode
execute a solicitação: http://localhost:9200/_cat/health?v
Vamos obter uma resposta sobre o estado do serviço Elasticsearch (no navegador):
Resposta do status de insônia:
Vamos prestar atenção ao Status - Verde, Amarelo, Vermelho. A documentação oficial diz o seguinte sobre status:
• Verde — Tudo está bem (o cluster está totalmente operacional)
• Amarelo – Todos os dados estão disponíveis, mas algumas réplicas no cluster ainda não estão alocadas para eles
• Vermelho: parte dos dados está indisponível por algum motivo (o próprio cluster está funcionando normalmente)
Obtendo estados sobre os nós do cluster e seus estados (tenho 1 nó): http://localhost:9200/_cat/nodes?v
Todos os índices ES: http://localhost:9200/_cat/indices?v
Além dos índices do Docsvision, também pode haver índices de outras aplicações - heartbeat,
kibana - se você usá-los. Você pode separar os necessários dos desnecessários. Por exemplo,
Vamos pegar apenas índices que tenham %card% no nome: http://localhost:9200/_cat/indices/*card*?v&s=index
Configuração do Elasticsearch
Obtendo as configurações do Elasticsearch: http://localhost:9200/_nodes
O resultado será bastante extenso, incluindo os caminhos para os logs:
Já sabemos como descobrir a lista de índices; o Docsvision faz isso automaticamente, dando o nome ao índice no formato:
<nome do banco de dados+tipo de cartão indexado>
Você também pode criar seu próprio índice independente: http://localhost:9200/customer?pretty
Só que esta não será uma solicitação GET, mas sim uma solicitação PUT:
Resultado:
a consulta a seguir mostrará todos os índices, inclusive os novos (cliente): http://localhost:9200/_cat/indices?v
5. Obtenção de informações sobre dados indexados
Status do índice Elasticsearch
Após a conclusão da configuração inicial do Docsvision, o serviço deverá estar pronto para operar e começar a indexar os dados.
Em primeiro lugar, vamos verificar se os índices estão preenchidos e se seu tamanho é maior que os “bytes” padrão usando uma consulta que já conhecemos: http://localhost:9200/_cat/indices?v
Como resultado, vemos: 87 “tarefas” e 72 “documentos” foram indexados, falando em termos do nosso EDMS:
Depois de algum tempo, os resultados são os seguintes (por padrão, os trabalhos de indexação são iniciados a cada 5 minutos):
Vemos que o número de documentos aumentou.
Como você sabe que o cartão que você precisa foi indexado?
• Primeiro, você precisa ter certeza de que o tipo de cartão no Docsvision corresponde aos dados especificados nas configurações do Elascticsearch.
• Em segundo lugar, espere que o array de cartões seja indexado - quando ele chega ao Docsvision, algum tempo deve passar antes que os dados apareçam no armazenamento.
• Em terceiro lugar, você pode procurar um cartão por CardID. Você pode fazer isso com a seguinte solicitação:
Se o cartão estiver armazenado, veremos seus dados “brutos”; caso contrário, veremos algo assim:
Procurando um cartão em um nó do Elasticsearch
Encontre um documento pela correspondência exata do campo Descrição: http://localhost:9200/_search?q=description: Исходящий tv1
Resultado:
procure um documento que tenha uma entrada 'Entrada' em sua Descrição http://localhost:9200/_search?q=description like Входящий
Resultado:
Procure um cartão pelo conteúdo do arquivo anexado http://localhost:9200/_search?q=content like ‘AGILE’
resultado:
Vamos encontrar todos os cartões do tipo de documento: http://localhost:9200/_search?q=_type:CardDocument
ou todos os cartões do tipo de tarefa: http://localhost:9200/_search?q=_type:CardTask
Usando designs e e os parâmetros que o Elasticsearch fornece em forma de JSON, você pode montar a seguinte requisição: http://localhost:9200/_search?q=_type:CardTask and Employee_RoomNumber: Орёл офиc and Employee_FirstName:Konstantin
Irá mostrar todos os cartões do tipo tarefa, entre os usuários cujo Nome = Konstantin, e que estão no Eagle Office.
Mas COMO Existem outros parâmetros documentados:
ao contrário, campos, documentos, conteúdo, etc.
Todos eles são descritos aqui.