inspiredminds / contao-news-categories-search

Contao extension to allow search results to be filtered by news categories.
GNU Lesser General Public License v3.0
0 stars 0 forks source link

Filter funktioniert nicht #2

Open saress opened 3 years ago

saress commented 3 years ago

Contao 4.9.15: Bei unserer Testinstallation funktioniert die Filterung nach Kategorien nicht, siehe auch:

https://contao.slack.com/archives/CLTUNH78X/p1623393024091200

Die Filtermöglichkeiten wurden aktiviert und werden auch im Frontend angezeigt. Auch der Suchindex wurde neu erstellt und liefert grundsätzlich auch richtige Ergebnisse. Klickt man allerdings auf eine der Kategorien (die vermeintlich für den Suchbegriff richtig wäre), dann wird kein Suchergebnis für den Begriff gefunden.

Vorab herzlichen Dank und schöne Grüße Sares

fritzmg commented 3 years ago

Ich kann leider kein Problem feststellen. In einer frischen Contao 4.9.15 Installation werden die Suchergebnisse korrekt nach Kategorien gefiltert.

saress commented 3 years ago

Vielen Dank für die Info. Ich habe jetzt aber keine Idee, was das Ergebnis der Suche da negativ beeinflussen könnte...

Wird bei Dir die Tabelle tl_search_categories mit Einträgen befüllt? Hab im Debug Modus gesehen, dass die Tabelle abgefragt wird, bei mir ist die aber leer.

fritzmg commented 3 years ago

Ja, wird befüllt. Verwendest du zusätzliche Extensions? Evt. ein Newsreader, der nicht vom Core kommt?

saress commented 3 years ago

OK, dann wird's vermutlich wohl irgendwie daran liegen und ja, schon, aber eine Erweiterung, die den Newsreader modifiziert ist glaube ich nicht dabei. Hier mal der Auszug aus der composer.json.

"require": { "alnv/catalog-manager": "^1.31", "alnv/catalog-manager-export": "^1.2", "alnv/catalog-manager-importer": "^1.3", "alnv/catalog-manager-wishlist": "^2.1", "codefog/contao-instagram": "^2.0", "codefog/contao-mobile_menu": "^2.7", "codefog/contao-news_categories": "^3.1", "contao/calendar-bundle": "4.9.", "contao/comments-bundle": "4.9.", "contao/conflicts": "@dev", "contao/faq-bundle": "4.9.", "contao/listing-bundle": "4.9.", "contao/manager-bundle": "4.9.", "contao/news-bundle": "4.9.", "contao/newsletter-bundle": "4.9.", "dalley-it/contao-photoswipe": "^1.0", "dklemmt/contao_dk_masonry": "^1.2", "dklemmt/contao_dk_mmenu": "^3.0", "e-spin/page-info-bundle": "^1.0", "fipps/contao-parallax-bundle": "^2.0", "fritzmg/contao-lightcase": "^2.1", "fritzmg/contao-news-sorting": "^2.0", "fritzmg/contao-swiper": "^3.3", "heimrichhannot/contao-slick-bundle": "^1.0", "heimseiten/contao-lightgallery-js-bundle": "^1.0", "inspiredminds/contao-author-news": "^1.0", "inspiredminds/contao-news-categories-search": "^1.2", "inspiredminds/contao-sibling-navigation": "^1.1", "isotope/isotope-core": "^2.6", "madeyourday/contao-rocksolid-custom-elements": "^2.2", "madeyourday/contao-rocksolid-frontend-helper": "^2.0", "madeyourday/contao-rocksolid-icon-picker": "^2.0", "menatwork/contao-news-most-read-bundle": "^1.0", "netzmacht/contao-leaflet-geocode-widget": "^1.3", "netzmacht/contao-leaflet-maps": "^3.1", "oveleon/contao-cookiebar": "^1.2", "pdir/animated-timeline-bundle": "^1.1", "richardhj/contao-childlayouts": "^1.1", "terminal42/contao-changelanguage": "^3.1", "terminal42/contao-leads": "^1.4", "terminal42/contao-node": "^1.0", "terminal42/notification_center": "^1.5", "trilobit-gmbh/contao-headerfootercode-bundle": "^1.0" },

fritzmg commented 3 years ago

Sind in var/logs evt. Fehler verzeichnet?

saress commented 3 years ago

Nein, schaut nicht so aus. Hab grad mal alles alte gelöscht und dann den die Systemwartung ausgeführt und dann auch den Crawler neu angestartet. Die Tabelle bleibt aber weiterhin leer und unter var/logs tauchen auch keine Meldungen auf.

saress commented 2 years ago

Wir hatten jetzt wieder mal ein wenig Zeit uns das Verhalten im Detail anzuschauen. Meine Kollegin hat dazu eine lokale Testinstanz aufgesetzt und versucht, dem Fehler auf die Spur zu kommen. Bei Ihrer lokalen Testinstanz hat die Suche dann gleich mal funktioniert, es war nur erforderlich den Suchindex nach dem Löschen immer 2x aufzubauen, damit die Tabelle tl_search_categories befüllt wird. Ist das normal?

In weiterer Folge wurden dann die einzelnen Erweiterungen der Problem-Instanz 1:1 nachinstalliert, aber lokal hat das dann weiterhin funktioniert. Somit sind wir aktuell noch immer etwas ratlos, woran das konkret liegen könnte und wo wir noch schauen könnten.

Hast Du vielleicht noch eine Idee?

Beste Grüße Sares

fritzmg commented 2 years ago

es war nur erforderlich den Suchindex nach dem Löschen immer 2x aufzubauen, damit die Tabelle tl_search_categories befüllt wird. Ist das normal?

Nein, das ist nicht normal. Konnte es jetzt lokal auch nicht nachvollziehen. Macht auch eigentlich keinen Sinn, denn jedes mal wenn man den Suchindex neu aufbaut, wird der Suchindex zuvor gelöscht, daher sollte es auch keinen Unterschied machen, wie oft man das ausführt.

saress commented 2 years ago

Danke Fritz für die Info und ja, uns ist das auch etwas seltsam vorgekommen. Ich denke, wir werden uns dann wohl im Detail mit dem Source-Code beschäftigen müssen und uns anschauen, an welcher Stelle die Einträge erzeugt werden und warum das dann nicht passiert. Theoretisch müsste es ja dann zwei unterschiedliche Trigger geben, die die Einträge in die Datenbank schreiben. Erstens den bei der Zuordnung eines Newsbeitrags zu einer Kategorie und zweitens dann noch beim erneuten Aufbauen des Suchindex, oder?

Beste Grüße Sares

fritzmg commented 2 years ago

Die Zuordnung erfolgt in einem kernel.terminate Event Listener. Dein beschriebenes Verhalten könnte vielleicht passieren, wenn der kernel.terminate Event Listener von Contao, welches den Suchindex aktualisiert vor dem kernel.terminate Event Listener dieser Extension ausgelöst wird. Das sollte aber eigentlich nicht passieren, weil der kernel.terminate Event Listener dieser Extension eine Priority von -255 hat und der von Contao keine Priority (also 0).

saress commented 2 years ago

Vielen Dank für die Ausführungen, die Priorität hab ich in der services.yml auch schon gesehen. Da wir auf den beiden Systemen die gleichen Erweiterungen haben und eines funktioniert, das andere nicht, wird es vermutlich oder mit ziemlicher Sicherheit was anderes sein, was da reinfunkt.

Das funktionierende Testsystem läuft unter Windows, das andere beim Hoster. In der Doku hab ich beim Search-Indexing noch den Hinweis bezüglich der Server API gelesen, aber PHP läuft auf dem Host als php-fpm und daher sollte hier auch alles soweit passen und der Event zur richtigen Zeit getriggert werden. Es bleibt also spannend :-)