Opened 19 months ago

Last modified 18 months ago

#1795 new Bug/Fehler

Suche - Ergebnisse aus Artikelnamen gegenüber Ergebnissen aus Produktbeschreibung bevorzugen

Reported by: FräuleinGarn Owned by: somebody
Priority: normal Milestone: modified-shop-2.0.7.0
Component: Shop Version: 2.0.5.0

Description

Im Moment scheint es so, dass die Suche nicht zwischen Treffern innerhalb der Produktbeschreibung und den Artikelnamen gewichtet. Eventuell wird sogar anhand des Einstelldatums also der Artikel ID aufsteigend gesucht.

Wenn man viele Artikel (größer der Anzahl an angezeigten Suchergebnissen) hat die ein bestimmtes Suchwort in der Beschreibung enthalten und nur wenige die es genau im Artikelnamen haben, dann werden mit hoher Wahrscheinlichkeit die viel besseren Suchergebnisse wo das Suchwort im Artikelnamen enthalten ist, nicht angezeigt.

Wenn man einstellt, dass die Produktbeschreibungen nicht durchsucht werden, dann erscheinen die Artikel mit Suchwort im Artikelnamen. Genauso funktioniert es, wenn man die Suchergebnisse extrem erhöht. Allerdings ist das nicht sinnvoll, weil man den Kunden nicht mit Ergebnissen überfordern möchte. Vor allem nicht mobil.

Deshalb schlage ich vor, dass Ergebnisse für Suchwörter die im Artikelnamen enthalten sind, zuerst angezeigt werden.

Bsp: Man hat 500 Perlen und in jeder Produktbeschreibung steht, dass man die Perlen auf eine Perlschnur auffädeln kann. In deren Artikelnamen kommt das Wort Perlschnur aber nicht vor. Und man hat zb nur eine Perlschnur, weil die universell für alle Perlen einsetzbar ist. Dann ist die Wahrscheinlichkeit bei 30 angezeigten Suchergebnissen extrem gering, dass dem Kunden bei Eingabe des Suchwortes Perlschnur die gewünschte Perlschnur angezeigt wird, obwohl diese als einziger Artikel im Shop das Wort Perlschnur im Artikelnamen enthält.

Attachments (0)

Change History (7)

comment:1 Changed 19 months ago by Tomcraft

Die Idee finde ich super. Ich habe da aber nochmal drüber nachgedacht und denke nicht, dass es sonderlich leicht umzusetzen sein wird.

comment:2 Changed 19 months ago by noRiddle

Das mit der Wahrscheinlichkeit stimmt so nicht, eben wegen

ORDER BY p.products_id ASC

was bedeutet, daß nach products_id aufsteigen sortiert wird,
und somit kann es nicht sein, daß "mit hoher Wahrscheinlichkeit die viel besseren Suchergebnisse wo das Suchwort im Artikelnamen enthalten ist" nicht angezeigt werden (wegen LIMIT).

Allerdings ist es richtig, daß eine Gewichtung auf das Suchwort im Artikelnamen super und besser wäre. Man sollte meinen, daß das nur mit Sub-Queries geht deren SELECT man jeweils einen numerischen Alias vergibt und dann nach diesem sortiert. Das dürfte sich allerdings richtig schlecht auf die Performance auswirken.

Was man aber auch probieren kann ist so etwas (bin nicht sicher, daß das so funktioniert):

"ORDER BY CASE 
    WHEN pd.products_name LIKE '%".$keyword."%' THEN 1
    WHEN pa.attributes_model LIKE '%".$keyword."%' THEN 2
    WHEN pd.products_name LIKE '%".$keyword."%' AND pd.products_description LIKE '%".$keyword."%' THEN 3
    WHEN pd.products_name NOT LIKE '%".$keyword."%' AND pd.products_description LIKE '%".$keyword."%' THEN 4
    ELSE 5
  END"

Eine solche Gewichtung würde Artikel wenn das Suchwort in seinen Attributen vorkommt, wo es, wenn es vorkommt, sicherlich eine hohe Gewichtung haben dürfte, als zweites sortieren.

Die Frage die sich bei beiden Möglichkeiten stellt ist was das mit der Performance macht.
Müsste man mal testen...

Gruß,
noRiddle

comment:3 Changed 18 months ago by noRiddle

In dem Zusammenhang frage ich mich gerade:
Warum wird in /includes/extra/default/listing_sql/99_advanced_search_result.php bei

if (PRODUCT_LIST_FILTER == 'true') {

ein ORDER BY NULL gemacht in der Variablen $where_str ?,
und warum wird $where_str dann aber gar nicht benutzt, genauso wenig wie $from_str, was z.B. SEARCH_IN_ATTR somit außer acht lässt und somit den Schalter dafür im Backend ad absurdum führt.

Mit diesen Unstimmigkeiten/Fehlern? funktioniert auch mein Vorschlag des ORDER BY oben nicht.

Gruß,
noRiddle

comment:4 Changed 18 months ago by GTB

mit 1 Suchwort mag das noch funktionieren, aber nicht mit mehreren gleichzeitig.

comment:5 Changed 18 months ago by noRiddle

Stimmt, ich schaue mir das nochmal an.
Mein letzter Post wäre möglichst allerdings auch zu beachten. Daß mein Vorschlag mit dem dort Beschriebenen nicht funktioniert ist ja nur Nebenthema.

Gruß,
noRiddle

comment:6 Changed 18 months ago by GTB

  • Milestone changed from modified-shop-2.0.5.1 to modified-shop-2.0.6.0

comment:7 Changed 18 months ago by noRiddle

Ich fände es wichtig meine Ausführungen in Comment 3 noch in die 2.0.5.2 zu nehmen, wäre ja schnell zu lösen.
Ich halte das für einen echten Fehler.

Um es etwas zu präzisieren:
Es geht um die $listing_sql wo $where_str und $from_str nicht beachtet/angewendet werden.
ORDER BY NULL in der Definition des $where_str macht auch keinen Sinn.

Das hat keinen direkten Bezug zum eigtl. vorliegenden Ticket mit dem ORDER BY. und ist mir in dem Kontext lediglich aufgefallen.

Gruß,
noRiddle

Add Comment

Modify Ticket

Action
as new
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.