Hallo!
Vandaag gaan we het hebben over de full-text search engine Elasticsearch (hierna ES), die
gebruikt wordt door het Docsvision 5.5 platform.

1. Installatie
U kunt de actuele versie downloaden via de link:
Screenshot van de installatie-assistent hieronder:

2. Controle van de functionaliteit
Ga na de installatie naar het adres
De pagina met de status van ES zou moeten verschijnen, voorbeeld hieronder:

Als de pagina niet opent, controleer dan of de Elasticsearch-service is gestart. In Windows is dit
de Elasticsearch-service.

3. Verbinding met Docsvision
De verbinding met Elasticsearch wordt ingesteld op de pagina van de full-text
indexering service.

Hier moet worden opgegeven:
1. Adres van de Elasticsearch-server (ingesteld tijdens de installatie).
2. Verbindingstring voor de DBMS.
3. Adres Docsvision (in het formaat ConnectAddress=)
4. Op het tabblad 'Kaarten' en 'Gidsen' moeten de gegevens worden ingesteld die
geïndexeerd moeten worden.
Zorg er ook voor dat het account waaronder de service Docsvision draait
Fulltext Indexing service, toegang heeft tot de Docsvision DB op MS SQL.
Na de verbinding moet u controleren of er taken in de MS SQL DB zijn aangemaakt met het prefix:
‘DV:FullText__CardWithFilesPrepareRange’

Na de instellingen in de Windows-client wordt de zoekbalk ontgrendeld.
4. REST API Elastic
De beheerder kan verschillende informatie over de werking van Elasticsearch verkrijgen met behulp van
de beschikbare REST API.
In de volgende voorbeelden gebruiken we de Insomnia Rest Client.
Verkrijgen van algemene informatie
Zodra de service is gestart en werkt (http://localhost:9200/ in de browser), kunt u
de volgende aanvraag uitvoeren:
We krijgen een reactie over de status van de Elasticsearch-service (in de browser):

Reactie over de status in Insomnia:

Let op de Status — Groen, Geel, Rood. De officiële documentatie zegt het volgende over de statussen:
• Groen — Alles goed (Cluster volledig operationeel)
• Geel — Alle gegevens toegankelijk, maar sommige replica's zijn nog niet toegewezen aan de cluster
• Rood — Een deel van de gegevens is om welke reden dan ook niet beschikbaar (de cluster functioneert normaal)
Verkrijgen van statusinformatie over de knooppunten in de cluster en hun status (ik heb 1 knoop):

Alle indexen (indices) van ES:

Naast de indexen van Docsvision, kunnen er ook indexen van andere applicaties zijn — heartbeat,
kibana — als u deze gebruikt. Nuttige van onnodige kunnen worden gesorteerd. Bijvoorbeeld,
Laten we alleen de items nemen waarvan de naam rd% bevat:

Configuratie van Elasticsearch
Verkrijgen van de instellingen van Elasticsearch:
Het resultaat zal behoorlijk uitgebreid zijn, inclusief paden naar de logs:

Hoe we de lijst met indexen kunnen achterhalen, weten we al, Docsvision doet dit automatisch door de naam van de index in het formaat te geven:
<имябд+видИндексируемойКарточки>
Het is ook mogelijk om een eigen onafhankelijke index te creëren:
Alleen zal dit geen GET, maar een PUT verzoek zijn:

Resultaat:

De volgende aanvraag toont alle indexen, inclusief de nieuwe (customer):

5. Informatie over geïndexeerde gegevens ophalen
De status van Elasticsearch-indexen
Nadat de initiële instellingen vanuit Docsvision zijn uitgevoerd, moet de service klaar zijn voor gebruik en voor het starten van het indexeren van gegevens.
Laten we eerst controleren of de indexen worden ingevuld en hun grootte groter is dan de standaard 'bytes' met de al bekende aanvraag:
Als resultaat zien we: 87 'opdrachten' en 72 'documenten' geïndexeerd als we het in termen van ons DMS zeggen:

Na enige tijd zijn de resultaten als volgt (standaard wordt de indexeringsopdracht elke 5 minuten uitgevoerd):

We zien dat het aantal documenten is toegenomen.
Hoe weet je dat de benodigde kaart is geïndexeerd?
• Ten eerste moet je ervoor zorgen dat het type kaart in Docsvision overeenkomt met de in Elasticsearch ingestelde gegevens.
• Ten tweede moet je wachten op de indexering van de kaartenset – er moet enige tijd verstrijken nadat deze in Docsvision is gekomen voordat de gegevens in de opslag verschijnen.
• Ten derde kun je de kaart zoeken op CardID. Dit kan met de volgende aanvraag:
Als de kaart in de opslag aanwezig is, zien we de 'ruwe' gegevens, als dat niet het geval is, zullen we een ongeveer dergelijk antwoord zien:

Zoeken naar een kaart in de Elasticsearch-node
Een document vinden op basis van een exact overeenkomend veld Description:
Resultaat:

zoek een document waarin in Description de tekst 'Inkomend' voorkomt
Resultaat:

Zoeken naar een kaart op basis van de inhoud van het bijgevoegde bestand
resultaat:

Laten we alle kaarten van het type document vinden:
of alle kaarten van het type opdracht:
Met behulp van constructies en en parameters die Elasticsearch in JSON-formaat retourneert, kun je de volgende aanvraag samenstellen:
Dit zal alle kaarten van het type opdracht tonen, onder de gebruikers waarvan FirstName = Konstantin en zich in Orël kantoor bevinden.
Bovendien LIKE er zijn ook andere gedocumenteerde parameters:
unlike, fields, docs, content, enzovoort.
Ze zijn allemaal beschreven .
Dat is alles voor vandaag!
#docsvision #docsvisionECM
Nuttige links:
- Insomnia Rest client
Bron: habr.com
