Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 16. August 2021 11:09

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

Search-Modul liefert teilweise keine Ergebnisse

Hi nach langer Zeit,

ich benutze das Suchmodul nur selten aber jetzt gab es mal wieder den Wunsch, eine sehr überladene Seite durchsuchen zu können.

Mir ist dabei aufgefallen, dass das Modul nicht die richtigen Ergebnisse liefert.

Dabei geht es auch um Eigennamen wie zB Thomas oder Begriffe wie Werkstatt, die sogar im TItel vorkommen. Inhalte, von denen ich genau weiß, dass der Begriff darin vorkommt, werden nicht gelistet. Teilweise werden aber Inhalte gelistet, in den denen der Begriff gar nicht vorkommt.

Es handelt sich dabei nicht um Modulinhalte und für alle Seiten ist "Diese Seite darf in den Suchergebnissen erscheinen" eingestellt.

Hat jemend eine Erklärung dafür?

Viele Grüße

Offline

#2 17. August 2021 11:30

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Search-Modul liefert teilweise keine Ergebnisse

Stehen diese Suchbegriffe im Suchindex? (Datenbank-Tabelle: module_search_index)
Wenn nein, dann versuch mal die Seiten erneut zu indizieren. (Erweiterungen -> Suche -> Optionen)
Wenn sich dann immer noch nichts ändert, dann schau mal in die Error-Logs oder lass Dir mal alle möglichen Fehler mit anzeigen, wenn Du einen Inhalt speicherst bzw. die Seiten neu indizierst.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 17. August 2021 13:59

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

Re: Search-Modul liefert teilweise keine Ergebnisse

Dank schonmal,

"module_search_index:"

Nicht ausreichend. Wenn das Feld "count" für die Ergebnishäufigkeit steht, dann stimmt es auf jeden Fall  nicht.

Beispiel Thomas: Steht einmal im Suchindex. Thomas Schulz auf der Startseite erscheint in den Suchergebnissen. Thomas Müller auf einer Folgeseite allerdings nicht.

"(Erweiterungen -> Suche -> Optionen)"

Eine Option zur Neuindizierung kann ich dort nicht finden.

Ich schau beizeiten mal in die Error Logs.

Vielleicht muss ich das Modul auch neu instalieren. Da stimmt was mit den Versionen nicht. Eigentlich habe 1.5.4 installiert, in der Modulverwaltung steht aber 1.5.2.

Offline

#4 17. August 2021 15:11

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Search-Modul liefert teilweise keine Ergebnisse

Ich hab mit der Version 1.52 getestet (CMSms 2.2.15)
Da Search ein Core Module ist, kann es eigentlich nicht sein, dass Du da eine andere Version installiert hast.

Da gibt es bei den Such-Optionen wo man die "Nicht zu indizierenden Wörter" angeben kann unten rechts einen Button "Die Webseite neu indizieren".


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 24. August 2021 14:35

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

Re: Search-Modul liefert teilweise keine Ergebnisse

NaN schrieb:

Ich hab mit der Version 1.52 getestet (CMSms 2.2.15)
Da Search ein Core Module ist, kann es eigentlich nicht sein, dass Du da eine andere Version installiert hast.

Normalerweise lösche ich nach der Installation sowohl Search als auch News, daher musste ich nachträglich eine "Refresh-Installation" machem. Aber ja, ich habe jetzt 1.52 - ich war nur kurz verdeutzt, weil im Forge steht seit 2009 die VS 1.5.4. Ich hatte den Punkt übersehen.


NaN schrieb:

Da gibt es bei den Such-Optionen wo man die "Nicht zu indizierenden Wörter" angeben kann unten rechts einen Button "Die Webseite neu indizieren".

Nun habe ich es. Hat aber nichts gebracht.

Offline

#6 25. August 2021 14:27

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Search-Modul liefert teilweise keine Ergebnisse

Hm, also ich hab jetzt mal bei zwei Seiten unterschiedlichen Inhaltstyps (Content und AdvancedContent) einmal "Thomas Schulze" und einmal "Thomas Müller" eingetragen.
Bei der Suche nach "Thomas" im Frontend werden mir beide Seiten in den Ergebnissen angezeigt.

Getestet mit PHP 7.3.12, 7.4, 7.4.3, 7.4.20 und 8.0.7 und MariaDB 10.4.10 und MySQL 8.0.21

Ich hab außerdem auch mal getestet, ob unsichtbare Formatierungen dazwischenfunken. Z.B.: T<b></b>homas oder so. Oder <b>T</b><b>homas</b>. Tun sie nicht. Suche nach "Thomas" funktioniert trotzdem, weil Search vor dem Indizieren alle Tags entfernt, sodass am Ende nur reiner Text übrig bleibt.

Es spielt auch keine Rolle, in welcher Inhaltseigenschaft das Suchwort steht. Also egal ob Standard-Inhaltsblock, zusätzlicher Block, Titel, Menutext ... Search indiziert alle Eigenschaften einer Seite. Also zumindest die, die sich mit Hilfe der API-Funktion $content->Properties() abrufen lassen. Könnte also nur sein, dass ein Inhaltstyp aus der Reihe tanzt und seine Eigenschaften nicht ordnungsgemäß registriert. AdvancedContent (was ich programmiertechnisch als einen sehr komplizierten Inhaltstypen sehe) macht da trotz diverser zusätzlicher Eigenschaften keine Probleme. Kann also kein generelles Problem mit Inhaltstypen sein (denn ich hab da selber nie drauf geachtet und es klappt trotzdem).

"module_search_index:"

Nicht ausreichend. Wenn das Feld "count" für die Ergebnishäufigkeit steht, dann stimmt es auf jeden Fall  nicht.

"count" steht übrigens nicht für die Gesamtanzahl dieses Wortes, sondern für die Anzahl auf der jeweiligen Seite. "Thomas" taucht demnach mehrfach in der Tabelle "search_index" auf. Jeweils mit einer unterschiedlichen "item_id" (einmal für jede Seite auf der es vorkommt mit dem jeweiligen count).

Also ich kann mir da keinen Reim drauf machen, warum bei Dir das eine Suchwort für eine Seite gefunden wird, aber für eine andere Seite nicht. Prüf nochmal nach, wie oft das Keyword tatsächlich in der Tabelle "search_index" steht. Wenn es mehrfach drin vorkommt und die "item_id" auch korrekt mit der zugehörigen Content ID in der Tabelle "search_items" steht, dann müsste es eigentlich funktionieren. Wenn nicht, dann stimmt was beim Indizieren nicht.

Prüf außerdem nochmal nach, ob für die fragliche Seite, die in den Ergebnissen nicht angezeigt wird, in der Datenbank in der Tabelle "content_props" bei "prop_name" namens "searchable" in der Spalte "content" auch wirklich eine "1" steht.

Wenn Du den Inhalt irgendwoher kopiert hast, stelle sicher, dass da nicht irgendein vermurkstes unsichtbares Zeichen im Namen steht. (Stichwort: Encoding) Also so ähnlich wie oben mit den missglückten Formatierungen beschrieben, könnte zwischen den Buchstaben auch ein Zeichen stehen, das einfach nicht angezeigt werden kann. (Einfach mal im HTML-Code den Textcursor mit den Pfeiltasten bewegen, und schauen, ob die Anzahl der Tastendrücke auch mit der Anzahl der sichtbaren Zeichen übereinstimmt)

Next: Schau mal in der Ereignisverwaltung nach, welche UDTs/Module bei "ContentEditPost" ausgeführt werden. Möglicherweise funkt da auch ein Script dazwischen, und verändert den Inhalt so, dass das Suchmodul da anschließend nichts mehr indizieren kann. Sollten diesem Event mehrere Dinge zugewiesen sein, verschiebe mal das Suchmodul nach oben an die erste Stelle.

Die Ausgabe aller möglichen Fehlermeldungen Errorlogs etc. was einen Hinweis auf einen möglichen Fehler beim Speichern von Inhalten liefern könnte, hast Du sicher schon geprüft, oder?

So. Mehr fällt mir grad nicht ein.

EDIT: Doch. Die Seite ist aber auch auf "active" gesetzt, oder? (Die Sichtbarkeit im Menü hat da keine Auswirkungen)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#7 27. August 2021 09:02

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

Re: Search-Modul liefert teilweise keine Ergebnisse

Vielen Dank für Mühe. Ich werde das mal durchprüfen.

Mir ist etwas aufgefallen.

Die Menüstruktur ist etwa so: Die Seite ist dreisprachig.

DE
--Home
--Story
---Seite 1
---Seite 2
---Seite 3
---Seite 4
---Seite 5
---Seite 6
---Seite 7
usw

"Story" ist fälschlicherweise intern mit Seite 4 verknüpft, statt mit Seite 1. Aber das dürfte nichts ausmachen. Die Änderung hat zumindest nichts verbessert.


Dennoch ungewöhnlich: Search liefert die richtigen Ergebnisse nur von den Seiten, die hier grün gekennzeichnet sind. Alles, was danach kommt, nicht mehr. Also ein "Thomas Müller" auf Home, Story, Seiten 1 bis 4 wird gefunden. Ab Seite 5  nicht mehr, obwohl auf gleicher Menüebene.

Ich muss dazu sagen, dass ich die Seiten nicht selbst befülle. Und es sind sehr viele Seiten. Der Kunde benutzt das ganze wie eine Art Blog. Unterhalb von "Story" befinden sich knapp 30 Seiten.

Beitrag geändert von antibart (27. August 2021 09:12)

Offline

#8 27. August 2021 16:19

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Search-Modul liefert teilweise keine Ergebnisse

An der Anzahl der Seiten, der Verlinkung oder an der Hierarchie sollte es eigentlich auch nicht liegen.
Hab jetzt mal bei einer Standard Installation auf allen 33 Seiten ein Suchwort eingefügt.
Ergebnis: 33 Suchresultate zu jeder Seite.

Verschiebe mal eine der Seiten, die nicht im Suchergebnis erscheint, weiter nach oben. (Also z.B. einfach mal Seite 4 und 5 tauschen.)

Wenn die ursprüngliche Seite 5 dann immer noch nicht erscheint, wissen wir zumindest, dass es tatsächlich am Inhalt der jeweiligen Seite liegen muss. Entweder kann Search den Inhalt nicht korrekt indizieren oder nicht korrekt auslesen. Warum? Inhalt und Datenbank inspizieren.

Wenn sie dann aber wundersamerweise doch erscheint, dann wissen wir, dass es scheinbar doch an der Anzahl der Seiten bzw. an der Hierarchie liegen muss.

Eventuell auch mal unter "Erweiterungen -> Systemwartung" schauen, ob es strukturelle Probleme in der Datenbank gibt und ggfs. beheben lassen. Oder einfach nur auf gut Glück alle Aktionen ausführen.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#9 09. September 2021 09:37

antibart
Server-Pate
Registriert: 14. Dezember 2010
Beiträge: 876

Re: Search-Modul liefert teilweise keine Ergebnisse

Hallo und Danke,

auch nach dem Verschieben einer Seite wird sie noch nicht gefunden. Danach habe ich ein Fantasiewort sowohl in eine der Seiten platziert, die bisher nicht gefunden wurde, sowie in eine, die gefunden wird. Ergebnis wie erwartet: Die eine wird gefunden, die andere nicht.

Inhalte sind tatsächlich ausschließlich Überschriften, Fotos und Texte. Systemwartung hatte ich schon probiert. Bleibt nur noch Datenbank inspzieren.

Beitrag geändert von antibart (09. September 2021 09:45)

Offline