Schlagwörter: 

Ansicht von 6 Antwort-Themen
  • Autor
    Beiträge
    • #29739
      Sebastian Koesters
      Teilnehmer

        Hallo zusammen,

        wir testen gerade intensiv Otobo 10.1 (Docker) und sind dabei auf folgendes Problem gestoßen.

        Wir haben ein neues Dynamisches Feld erstellt, welches bei vielen Tickets befüllt werden wird. Leider kann man via Eleasticsearch nicht nach dem Inhalt dieses Felds suchen.

        Ich habe bereits die Settings „Elasticsearch::TicketSearchFields“ und „Elasticsearch::TicketStoreFields“ um das „DynamicField“ erweitert, aber auch damit wird nichts gefunden.

        Bei meiner Recherche im Internet bin ich leider auch nicht fündig geworden. Daher nun die Frage, ob und wie ich die Elasticsearch um das DynamicField erweitern kann?

        Danke und Gruß

        Sebastian

      • #30069
        Stefan Abel
        Moderator

          Hallo,

          ich hätte schon erwartet, dass die Elasticsearch::TicketSearchFields und Elasticsearch::TicketStoreFields funktionieren, denn da gibt es out of the box ja bereits die Bereiche für Dynamic Fields.
          Wie hast du die denn da mit aufgenommen?

          Ggf. mit „DynamicField_“ vor dem Feldnamen probieren? Das glaube ich zwar nicht, aber ggf. ist es das?

          Ansonsten: wie kommt der DF-Wert an das Ticket? Bevor oder nachdem der Elasticsearch-Suchindex aktualisiert wird? Hast du über die otobo.Console.pl mal den Suchindex neu aufgebaut nachträglich und nochmal gesucht?

          Viele Grüße
          Stefan

        • #30075
          Sebastian Koesters
          Teilnehmer

            Hi Stefan,

            in dem konkreten Fall habe ich folgendes getestet.

            1. Elasticsearch::TicketSearchFields und Elasticsearch::TicketStoreFields erweitert (siehe Screenshot – das erstellte DF heißt „JiraRelatedIssueId“)
            2. neues Ticket erstellt.
            3. Manuell das DF im Ticket gefüllt.
            4. In den Otobo-web Container rein und folgendes ausgeführt: bin/otobo.Console.pl Maint::Elasticsearch::Migration (soweit ich gelesen habe, erneuert das den Elasticsearch Index).
            5. Danach gesucht, was ich in das DF eingetragen habe -> kein Treffer

            Screenshots:

            Danach habe ich es dann mal mit „DynamicField_“ vor dem Eintrag probiert und dann noch mal den Console Befehl ausgeführt.

            Aktuell erhalte ich dann aber jede Menge solcher Einträge:

            se of uninitialized value in string eq at /opt/otobo/Kernel/GenericInterface/Invoker/Elasticsearch/TicketManagement.pm line 417.
            Use of uninitialized value in string eq at /opt/otobo/Kernel/GenericInterface/Invoker/Elasticsearch/TicketManagement.pm line 417.
            Use of uninitialized value in string eq at /opt/otobo/Kernel/GenericInterface/Invoker/Elasticsearch/TicketManagement.pm line 417.
            Use of uninitialized value in string eq at /opt/otobo/Kernel/GenericInterface/Invoker/Elasticsearch/TicketManagement.pm line 417.
            Use of uninitialized value in string eq at /opt/otobo/Kernel/GenericInterface/Invoker/Elasticsearch/TicketManagement.pm line 417.

            VG

            Sebastian

          • #30076
            Stefan Abel
            Moderator

              Hallo,

              probier mal bitte aus TicketStoreFields wieder rauszunehmen, dass es nur in TicketSearchFields drin ist.
              Und dann nochmal die Elasticsearch::Migration durchzuführen.
              Zur Anzeige kannst du es auch mal unter Elasticsearch::QuickSearchShow###Ticket auflisten, was da auftaucht.

              Das muss erstmal funktionieren.

              Falls das dann geht, können wir noch das DynamicField Update mit aufnehmen, einmal im Elasticsearch Webservice > Invoker > TicketManagement > Event Triggers  und einmal in der Systemkonfiguration im Update-Event für den Webservice. Das aktualisiert dir dann aber nur beim Updaten des DFs den Index. Aber dazu muss erstmal der obere Teil funktionieren.

              VG
              Stefan

            • #30078
              Sebastian Koesters
              Teilnehmer

                Hi Stefan,

                den ersten Teil Deiner Antwort habe ich umgesetzt. Aus TicketStoreFields entfernt, in TicketSearchFields ist es weiterhin drin. Danach habe ich die „Migration“ ausgeführt. Weiterhin habe ich QuickSearch so geändert, dass es korrekt den Inhalt des DF im Suchfenster anzeigt (wenn ich z.B. nach dem Betreff des Tickets suche).

                Nach dem Inhalt des DF kann ich aber leider weiterhin nicht suchen.

                Hinweis, der Inhalt des DF war bisher „TTS-TEST“. Ich habe das nun mal auf „TTS45678“ geändert und siehe da, es taucht in der Suche auf. Anscheinend ist der Bindestrich das Problem. Kann man das irgendwie abfangen / ändern?

                VG

                Sebastian

              • #30090
                Sebastian Koesters
                Teilnehmer

                  Kann hier keiner helfen? Ich finde es ein wenig seltsam, dass man über eine Suche nicht nach Werten mit einem Bindestrich suchen kann.

                • #30097
                  Stefan Abel
                  Moderator

                    Hallo Sebastian,

                    d.h. ja, er findet nun auf jeden Fall die Werte der Dynamischen Felder am Ticket :-)

                    Der Bindestrich hat hier in Elasticsearch eine Sonderfunktion, ähnlich wie in der Google-Suche. Bspw. mit „+“ muss etwas dabei sein, mit „-“ darf etwas nicht dabei sein, d.h. das wird explizit aus der Suche ausgeschlossen.

                    Wenn du bspw. mit Anführungszeichen suchst, suchst du explizit nach den Werten darin, also bspw. auch TTS-Test, wenn du nach „TTS-Test“ suchst.

                    Ob du das auch irgendwie umkonfigurieren kannst, weiß ich ehrlich gesagt nicht. Eine Einstellung in der Systemkonfiguration habe ich nicht gefunden. Den Elasticsearch-Container müsste man sich mal anschauen.

                    Viele Grüße
                    Stefan

                Ansicht von 6 Antwort-Themen
                • Du musst angemeldet sein, um auf dieses Thema antworten zu können.