Suche nach Artikelnummern: Nicht nach Bestandteile?

wird bei der Suche nicht nach Bestandteilen der Artikelnummern gesucht?

Beispiel: 304.CZ520ORM-092

Ich suche nach CZ520ORM  --> kein Ergebnis, Weshalb nicht?

1 Like

Gleiche Problematik habe ich auch in einem Projekt nachstellen können.
Es sollte kein Equals sondern Contains verwendet werden.

Unter https://github.com/mnaczenski/MNExtendSearch/blob/master/src/Service/MySearchKeywordAnalyser.php baut [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍ ja eine eigene Suche auf.
Da wird aber immer nur per Prio. etwas dem Keyword Analyser mitgegeben.
Frage wäre also hier, wie man so ein Contains schaffen könnte - habe da jedenfalls auch großes Interesse dran.

Schöne Grüße,
Niklas

moment … die bauen abseits von Shopware eine eigene Suche auf? Sehr strange … 

Es ging da eher um ein Beispiel für die Anpassung der Such-Logik.
Frage wäre also vielleicht mit der Hilfe von [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍ den Fall von oben abzudecken.
Also, Teilmenge des Artikelcodes findet auch Ergebnisse, nicht nur ein equal.

Schöne Grüße,
Niklas

Gibt es etwas? Beispiel: 12345 findet nichts, 12345_ schon.
Ich habe den Artikelcode des Vaters hinzugefügt, das klappt tendentiell.
Trotzdem wird generell kein sauberes LIKE ausgeführt - was kann man machen?

Schöne Grüße,
Niklas

ich muss hier nochmal nachhaken [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍

die Suche ist weiterhin eine Katastrophe. Vor allem bei Suche nach Artikelnummer. Findet einfach lauter Müll … wieso kann man hier nicht einfach eine exakte Suche einbauen?

wieso bringt eine Suche nach “063800”  auch einen Artikel mit Nummer “1706800”? Ist doch völlig hirnrissig bei einer Artikelnummersuche auf quasi “ähnliche” Artikelnummern zu suchen … wenn ich eine Artikelnummer suche, kenne ich diese exakt. Jemand der die Nummer nicht exakt kennt sucht danach auch nicht.

3 Likes

Warum sollte sich auch daran in den letzten Tagen etwas geändert haben?

Das Topic ist ja auf der Roadmap und wird im Rahmen dessen auch bearbeitet. Da kannst du ja nachvollziehen, wann es da eine Besserung geben wird. 

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍ in den letzten Tagen? Der letzte Post vor meinem in  diesem Thread ist 4 MONATE her …

auf der Roadmap finde ich zur Suche eigentlich nur das:

 

da steht zwar was von Custom Fields und Priorisierung, aber nicht dass die Suche grundsätzlich Mist ist und überarbeitet wird… ist das da enthalten?

wäre super wenn man für die durchsuchten Felder einstellen könnte ob solche unscharfe Treffer auch gezeigt werden …

 

Beispiel: Suche nach ABCD

natürlich muss jede Artikelnummer gefunden werden, die ABCD beinhaltet … also auch AAAABCDEEE

Aber natürlich nicht eine Artikelnummer mit ABCE

so gesehen sind ja beide „unscharfe“ Treffer oder?

Also ich lese da nichts von Custom Fields ehrlich gesagt. Schau dir den Info-Text dazu an, dann siehst du auch, was in diesem Rahmen gemacht wird. Grundsätzlich geplant:

  • zusätzliche Felder mit einbeziehen

  • Ranking pro Feld festlegen

  • Und/Oder Suche wählbar

  • Tokenizing einstellbar pro Feld (Bei Sonderzeichen Trennen oder nicht, “SW-12345” vs “SW” und “12345”)

 

Konfigurieren musst du die Suche dann selbst, wir stellen hier lediglich mehr Konfigurationsparameter bereit. Gerade das Beispiel was du da aufgezeigt hast, wird so nicht funktionieren, da du bei Text ja sicherlich sehr wohl einen unscharfen Treffer willst (Testprodukt vs. Testproduct). Genauso wie du sicherlich ein Ergebnis willst, wenn jemand sich vertippt (“ABC.D”). Das bleibt weiterhin gesetzt und ist in dieser Optimierung nicht enthalten. 

Es gibt auch grundsätzlich keine “Artikelnummernsuche”, sondern es gibt eine Suchanfrage, die alle konfigurierten Felder durchsucht. Da macht grundsätzlich eine unscharfe Suche auch total Sinn. Das was du willst, wäre eine zusätzliche Suche die ggf. bei exakten Treffern die unscharfe Suche erst garnicht anspricht, wenn es einen Exakten Treffer gibt. Das macht aber meiner Meinung nach nur bei der Artikelnummer Sinn. “AAAABCDEEE” ist ja genauso eine unscharfer Treffer, wenn ich nach “ABCE” suche. 

„zusätzliche Felder mit einbeziehen“ das meinte ich mit „Custom Fields“

richtig, AAAABCDEEE ist ein unscharfer Treffer, sollte aber gefunden werden. ABCE dagegen natürlich nicht.

Ich weiß nicht wieso das so schwer umzusetzen ist.

Im Endeffekt muss man doch nur einstellbar machen, dass die Artikelnummer quasi mit LIKE ‚%ABCD%‘ gesucht werden soll. Alles andere von mir aus wie gehabt.

 

Wenn du mir sagst wohin ich greifen muss um das in einem Plugin umzusetzen mach ich es auch selbst. Ich habs leider noch nicht gefunden …

Mal eine ernstgemeinte Zwischenfrage, warum tut ihr euch überhaupt den Stress mit Shopware 6 an? 

@FloC3 schrieb:

Wenn du mir sagst wohin ich greifen muss um das in einem Plugin umzusetzen mach ich es auch selbst. Ich habs leider noch nicht gefunden …

Die komplette Scoring Berechnung findet hier statt platform/ProductSearchTermInterpreter.php at 6638055e73d8b308ed35ff9a731ee4bf2b8f9e75 · shopware/platform · GitHub 

irre ich mich, oder ist es beim Scoring dann schon zu spät? Kann man nicht in den Such-SQL direkt eingreifen?

@Moritz Naczenski schrieb:

[…] Das was du willst, wäre eine zusätzliche Suche die ggf. bei exakten Treffern die unscharfe Suche erst garnicht anspricht, wenn es einen Exakten Treffer gibt. Das macht aber meiner Meinung nach nur bei der Artikelnummer Sinn. 

Stimmt wohl, da aber dann um so mehr!  Typisches Szenario: Kundenservice sagt zum Kunden am Telefon: „Sehen Sie sich doch mal Artikel-Nr. SW2578 an“ – oder auch umgekehrt: Kunde sagt zum Servicemitarbeiter: „Ich habe eine Frage zu Art-Nr. SW2578…" … Bei uns ein typischer, täglich x-facher Vorgang.
Da würde ich als Shopbetreiber und als Kunde schon erwarten, dass dieser Artikel bei der Suche ausgegeben wird – eigentlich als erster, wenn nicht einziger Treffer.
Im Moment erscheint dieser Artikel überhaupt nur als Ergebnis, wenn ein konkretes Varianten-Suffix (also bsp. SW2578**.0) **mit eingegeben wird – und selbst dann ist es nicht der erste Treffer (Sortierung „Bestes Ergebnisse“.), sondern ggf. nichtmal auf Seite 1, je nachdem ob es viele Artikel gibt, wo irgendwas mit den Ziffern 2-5-7-8 irgendwo vorkommt. 
Wenn das Varianten-Suffix weggelassen wird (also nur „SW2578“ gesucht wird), erscheint der Artikel überhaupt nicht als Suchtreffer…

Fuzzyness ist bei Artikelnummern halt einfach vollkommen kontraproduktiv, ich hoffe da auf Verständnis und/oder die Möglichkeit, mit den versprochenen Konfigurationsmöglichkeiten entsprechend einzuwirken.

1 Like

hab es jetzt mal hardcoded in der von Moritz genannten Datei gelöst

https://github.com/shopware/platform/blob/6638055e73d8b308ed35ff9a731ee4bf2b8f9e75/src/Core/Content/Product/SearchKeyword/ProductSearchTermInterpreter.php 

public function interpret(string $word, Context $context): SearchPattern
{
    $tokens = $this->tokenizer->tokenize($word);

    //$slops = $this->slop($tokens);

    $slops = [
        "normal" => [
            "%" . $word . "%"
        ],
        "reversed" => []
    ];

    [...]
}

 

die Zeile wo die $slops ermittelt werden auskommentiert und mit einem Array ersetzt, in dem nur für „normal“ der Suchbegriff inkl. % hinten und vorn enthalten ist.

funktioniert super. Vertipper werden natürlich nicht mehr abgefangen, aber das ist ein guter Kompromiss

 

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍ jetzt die Frage: wie pack ich sowas updatesicher in ein Plugin?

1 Like

Hat sich hier etwas getan?
Wir sind auch in die Artikelnummerfalle getappt.

Wir hatten das Problem dann auch gehabt, konnten das aber ein Glück lösen. Unser Vorgang war die Filter für die Suche anzupassen, sprich zu überprüfen, ob der SearchTerm einer Artikelnummer entspricht.
Bei SW 6.4 haben wir auf die Events (ProductSearchCriteriaEvent, ProductSuggestCriteriaEvent) subscribed und einen neuen EqualsFilter hinzugefügt, der nach der exakten Artikelnummer schaut (case-insensitive).
Falls es ein Produkt mit der gesuchten Artikelnummer existiert, wird man gleich auf die Detailseite weitergeleitet. Das heißt aber auch, wenn es eine unscharfe Suche vorliegt, dann wird man auf ein Listing weitergeleitet.
Wir waren so frei und haben ein kostenloses Plugin erstellt und es steht im Store zum Downloaden zur Verfügung.
https://store.shopware.com/leopa84423787994f/artikeldetailseite-bei-eindeutigem-artikelnummer-match-in-suche.html
Hoffentlich löst es auch euer Problem

2 Likes

Was für eine tolle Initiative. Nach Monaten des Frust seitens Shopware, gibt es endlich eine Lösung für uns.

Ein kleiner Wunsch bleibt noch offen.
Produktnummern, die 2 Punkte beinhalten, werden nicht gefunden

4.07603.017

Erst wenn der User den 2. Punkt innerhalb der Artikelnummer löscht, funktioniert die präzise Suche.

Kann dass in der nächsten Version des Plugsins umgesetzt werden.

Hallo heinkel-club,
Es freut mich sehr, dass wir mit unserem Plugin helfen konnten. Mit den Artikeln aus dem Demo-Store konnte ich leider das Verhalten nicht nachstellen.
Erstellen Sie doch bitte ein Support-Ticket im Shopware-System, wir schauen uns das dann gerne auch einmal direkt mit Ihnen zusammen an.

MfG

Le