Hallo!
Heute werden wir über die Full-Text-Suchmaschine Elasticsearch (im Folgenden ES) sprechen, mit der
die Plattform Docsvision 5.5 arbeitet.

1. Installation
Die aktuelle Version kann über den folgenden Link heruntergeladen werden:
Der Screenshot des Installationsprogramms ist unten:

2. Funktionsprüfung
Nach Abschluss der Installation gehen Sie zu der Adresse
Es sollte eine Seite mit dem Status von ES angezeigt werden, Beispiel unten:

Wenn die Seite nicht geöffnet wird, stellen Sie sicher, dass der Elasticsearch-Dienst läuft. Auf Windows ist dies
der Elasticsearch-Dienst.

3. Verbindung zu Docsvision
Die Verbindung zu Elasticsearch wird auf der Seite des Full-Text-Services
für die Indizierung konfiguriert.

Hier müssen Sie angeben:
1. Adresse des Elasticsearch-Servers (wird bei der Installation festgelegt).
2. Verbindungszeichenfolge zur DBMS.
3. Adresse Docsvision (im Format ConnectAddress=)
4. Auf den Registerkarten „Karten“ und „Verzeichnisse“ müssen die Daten konfiguriert werden, die
indiziert werden sollen.
Es muss auch sichergestellt werden, dass das Benutzerkonto, unter dem der Dienst Docsvision
Fulltext Indexing service läuft, Zugriff auf die Docsvision-Datenbank auf MS SQL hat.
Nach der Verbindung sollte sichergestellt werden, dass in der MS SQL-Datenbank Aufgaben mit dem Präfix erstellt wurden:
„DV:FullText__CardWithFilesPrepareRange“

Nach den Einstellungen wird das Suchfeld im Windows-Client freigeschaltet.
4. REST API Elastic
Der Administrator kann verschiedene Informationen über die Funktionsweise von Elasticsearch über die
bereitgestellte REST API abrufen.
In den folgenden Beispielen verwenden wir den Insomnia Rest Client.
Abrufen von allgemeinen Informationen
Sobald der Dienst gestartet ist und funktioniert (http://localhost:9200/ im Browser), können Sie
die Abfrage ausführen:
Wir erhalten eine Antwort über den Status des Elasticsearch-Dienstes (im Browser):

Antwort über den Status in Insomnia:

Beachten Sie den Status — Grün, Gelb, Rot. Die offizielle Dokumentation sagt zu den Statusfolgendes:
• Grün — Alles in Ordnung (Cluster voll funktionsfähig)
• Gelb — Alle Daten sind verfügbar, aber einige Replikate im Cluster sind derzeit noch nicht zugewiesen
• Rot — Ein Teil der Daten ist aus irgendeinem Grund nicht verfügbar (der Cluster funktioniert jedoch normal)
Abrufen der Zustände der Knoten im Cluster und deren Zustand (ich habe 1 Knoten):

Alle ES-Indizes:

Neben den Indizes von Docsvision können auch Indizes anderer Anwendungen vorhanden sein — heartbeat,
kibana — wenn Sie diese verwenden. Nützliche von unnötigen können gefiltert werden. Zum Beispiel
Lass uns nur die Indizes nehmen, deren Namen rd% enthalten:

Konfiguration von Elasticsearch
Abrufen von Einstellungen für Elasticsearch:
Das Ergebnis wird ziemlich umfangreich sein, einschließlich der Pfade zu den Protokollen:

Wie wir die Liste der Indizes herausfinden, wissen wir bereits, Docsvision macht dies automatisch, indem es den Indexnamen im Format vergibt:
<имябд+видИндексируемойКарточки>
Es ist auch möglich, einen eigenen unabhängigen Index zu erstellen:
Nur wird dies kein GET-, sondern ein PUT-Anfrage sein:

Ergebnis:

Die folgende Anfrage zeigt alle Indizes an, einschließlich der neuen (Kunde):

5. Abruf von Informationen über indizierte Daten
Zustand der Elasticsearch-Indizes
Nachdem die ursprüngliche Konfiguration von Docsvision durchgeführt wurde, sollte der Dienst bereit zur Arbeit und zum Start der Indizierung von Daten sein.
Zuerst prüfen wir, ob die Indizes gefüllt sind und ihre Größe größer ist als die Standard-„Bytes“ mit der für uns bereits bekannten Anfrage:
Als Ergebnis sehen wir: 87 „Aufträge“ und 72 „Dokumente“ wurden indiziert, wenn wir in Begriffen unseres EDS sprechen:

Nach einiger Zeit sind die Ergebnisse so (standardmäßig wird der Indizierungsjob alle 5 Minuten gestartet):

Dabei sehen wir, dass die Anzahl der Dokumente zugenommen hat.
Wie erkennt man, dass die benötigte Karte indiziert wurde?
• Erstens muss sichergestellt werden, dass der Kartentyp in Docsvision mit den in den Elasticsearch-Einstellungen angegebenen Daten übereinstimmt.
• Zweitens muss man auf die Indizierung des Kartenarrays warten - es kann einige Zeit dauern, bis die Daten in Docsvision im Speicher erscheinen.
• Drittens kann man die Karte nach CardID suchen. Dies kann mit der folgenden Anfrage geschehen:
Falls die Karte im Speicher vorhanden ist, sehen wir ihre „rohen“ Daten, andernfalls erhalten wir eine Antwort wie die folgende:

Suche nach Karte im Elasticsearch-Knoten
Dokument nach exakter Übereinstimmung des Feldes Beschreibung finden:
Ergebnis:

Dokument suchen, dessen Beschreibung das Wort ‚Eingehend‘ enthält
Ergebnis:

Suche nach Karte anhand des Inhalts der angehängten Datei
Ergebnis:

Lass uns alle Karten vom Typ Dokument finden:
oder alle Karten vom Typ Aufgabe:
Durch die Verwendung von Konstruktionen and und den Parametern, die Elasticsearch in Form von JSON ausgibt, kann man eine solche Anfrage zusammenstellen:
Es zeigt alle Karten vom Typ Aufgabe unter den Benutzern an, deren Vorname = Konstantin ist und die sich im Büro Orël befinden.
Außerdem LIKE gibt es auch andere dokumentierte Parameter:
unlike, fields, docs, content usw.
Alle sind beschrieben .
Für heute ist alles!
#docsvision #docsvisionECM
Nützliche Links:
- Insomnia Rest-Client
Quelle: habr.com
