[gelöst] Fehler mit Elastic Search // im Frontend sind weniger Artikel sichtbar als im Backend fr...

Wir haben das Problem das 48 Artikel im Backend freigegeben wurden für eine Kategorie. Im Frontend kommen aber nur 38 Artikel in der Kategorie an.

Neu indexieren etc. haben wir alles schon probiert. Support von Shopware erhält man leider nur ab aktuellem Enterprise Kundenstatus - hier haben wir vergebens schon nachgefragt.

Das Verhalten viel auch erst auf als neue Artikel angelegt wurden und diese einfach nicht sichtbar waren im Frontend. Auch ältere Artikel sind nicht zu sehen, das konnten wir nun auch schon rausfinden. Warum das allerdings so ist, ist absolut unklar. Da nirgends ein Fehler erscheint.

Hat jemand dies bei sich schon feststellen können und ggf. das Problem lösen können?!

Im Einsatz ist aktuell:

  • Shopware 5.2.21PE+
  • Elastic Search 2.4.4

VG

Im Einsatz ist aktuell:

  • Shopware 5.2.21PE+
  • Elastic Search 2.4.4

Besteht die Möglichkeit Elastic Search 5.* auszuprobieren? 

Hi Thomas,

schon probiert - das kann aber Shopware akuell noch nicht.

Wenn man in einer lokalen Testumgebung die gleichen Parameter einstellt und ES installiert hat dann funktioniert es.

Sobald aber der ES Server extern liegt gehts nicht mehr. Das habe ich gerade einmal ausprobiert.

Gibts denn bei euch ein Feedback wenn ihr sw:es:backlog:sync ausführt?! Kommt da irgendwas… ? Sowas wie 10 Article aktualisiert o.ä. ?!

@SYNERGY NETWORKS schrieb:

Gibts denn bei euch ein Feedback wenn ihr sw:es:backlog:sync ausführt?! Kommt da irgendwas… ? Sowas wie 10 Article aktualisiert o.ä. ?!

Das synchronisiert ja nur die Backlog Items nach dem Du einmal ein populate gemacht hast.

Was passiert wenn Du ein 

 sw:es:index:populate

 machst?

@SYNERGY NETWORKS schrieb:

Sobald aber der ES Server extern liegt gehts nicht mehr. Das habe ich gerade einmal ausprobiert.

Völliger quatsch - das funktioniert hier im Cluster Setup  einwandfrei mit Elastic Search 5 und Zugriff via remote

{
  "name" : "es-1",
  "cluster_name" : "es",
  "cluster_uuid" : "***",
  "version" : {
    "number" : "5.1.2",
    "build_hash" : "***",
    "build_date" : "***",
    "build_snapshot" : false,
    "lucene_version" : "6.3.0"
  },
  "tagline" : "You Know, for Search"
}

 

@Thomas schrieb:

@SYNERGY NETWORKS schrieb:

Gibts denn bei euch ein Feedback wenn ihr sw:es:backlog:sync ausführt?! Kommt da irgendwas… ? Sowas wie 10 Article aktualisiert o.ä. ?!

Das synchronisiert ja nur die Backlog Items nach dem Du einmal ein populate gemacht hast.

Was passiert wenn Du ein 

sw:es:index:populate

 machst?

dann kommt das hier dabei raus:

Indexing shop .de-DE

Indexing properties
 43/43 [============================] 100% < 1 sec/< 1 sec
Indexing products
 59/59 [============================] 100% < 1 sec/< 1 sec

 

@Thomas schrieb:

@SYNERGY NETWORKS schrieb:

Sobald aber der ES Server extern liegt gehts nicht mehr. Das habe ich gerade einmal ausprobiert.

Völliger quatsch - das funktioniert hier im Cluster Setup  einwandfrei mit Elastic Search 5 und Zugriff via remote

{
„name“ : „es-1“,
„cluster_name“ : „es“,
„cluster_uuid“ : „",
„version“ : {
„number“ : „5.1.2“,
„build_hash“ : "
“,
„build_date“ : „***“,
„build_snapshot“ : false,
„lucene_version“ : „6.3.0“
},
„tagline“ : „You Know, for Search“
}

 

das haben wir gerade

 { "name" : "Ghost Girl", "cluster\_name" : "elasticsearch", "cluster\_uuid" : "\*\*\*", "version" : { "number" : "2.4.4", "build\_hash" : "\*\*\*", "build\_timestamp" : "\*\*\*", "build\_snapshot" : false, "lucene\_version" : "5.5.2" }, "tagline" : "You Know, for Search" }

@SYNERGY NETWORKS schrieb:

dann kommt das hier dabei raus:

Indexing shop .de-DE

Indexing properties
 43/43 [============================] 100% < 1 sec/< 1 sec
Indexing products
 59/59 [============================] 100% < 1 sec/< 1 sec

Sind das denn alle Artikel die Du im Shop hast?

Werden danach alle Artikel angezeigt? 

Was habt ihr denn in der elasticsearch.yml eingestellt?

@Thomas schrieb:

@SYNERGY NETWORKS schrieb:

dann kommt das hier dabei raus:

Indexing shop .de-DE

Indexing properties
 43/43 [============================] 100% < 1 sec/< 1 sec
Indexing products
 59/59 [============================] 100% < 1 sec/< 1 sec

Sind das denn alle Artikel die Du im Shop hast?

Werden danach alle Artikel angezeigt? 

Die 59 Artikel sind alle Grundartikel im Shopware Backend, davon sind aber nur 48 Artikel aktiv und dürften im Frontend zu sehen sein. 38 Artikel allerdings werden aber nur angezeigt.

@SYNERGY NETWORKS schrieb:

 

Die 59 Artikel sind alle Grundartikel im Shopware Backend, davon sind aber nur 48 Artikel aktiv und dürften im Frontend zu sehen sein. 38 Artikel allerdings werden aber nur angezeigt.

Dann wirst Du wohl dich durch den Stack hangeln müssen und schauen was der EsRequest an Artikel zurück gibt.

 

Dann wirst Du wohl dich durch den Stack hangeln müssen und schauen was der EsRequest an Artikel zurück gibt.

 und das mache ich wie ?!

Da wir ja nicht wissen wo der Fehler genau steckt, fangen wir dort an wo das Symptom (zu wenig Artikel werden dargestellt) auftritt.

  1. Also im ListingController in der indexAction: shopware/Listing.php at 5.2 · shopware/shopware · GitHub
  2. Da werden anscheinend die CategoryArticles geholt (shopware/Listing.php at 5.2 · shopware/shopware · GitHub).
  3. Die Methode sGetArticlesByCategory befindet sich in der sArticles.php (shopware/sArticles.php at 5.2 · shopware/shopware · GitHub).
  4. Dort wird wiederum die Methode getListing() (shopware/sArticles.php at 5.2 · shopware/shopware · GitHub) aufgerufen.
  5. Hier wird anscheinen schon eine Suche ausgeführt: shopware/sArticles.php at 5.2 · shopware/shopware · GitHub

Bei den einzelnen Zwischenschritten lässt Du dir die Werte der Variablen ausgeben und überprüfst diese. Wenn Du in den Schritten noch nicht die Ursache gefunden hast machst Du mit dem SearchService genau so weiter.

Hi Thomas und denen die auch mal daran verzweifeln,

wer einmal von SW4 bis hin zur SW 5.2.21 Version updates durchgeführt hat und im Frontend weniger Artikel sieht als eigentlich verfügbar.

Überprüft eure Artikel!
Gibt es Werte die als Beispiel bei einer Variante alle Varianten haben müssten und einer davon besitzt diesen Wert gar nicht - geht es schon nicht und der Artikel wird nicht ausgespielt.

Hi Thomas,
der Fehler hier war wohl einfach der Fehler… das es noch ein Datumfeld als Attribute gab und wenn dieses Datum nicht gesetzt wurde, weil man es nicht benötigt dann hat ES nach und nach die Artikel aus dem Listing rausgeschmissen… Wir haben jetzt bei allen ein Datum hinterlegt neu indexiert und siehe da alle artikel sofort im listing wieder vorhanden.

Haben jetzt nur noch mit [calculatedPrices.SB_1.calculatedReferencePrice] cannot be changed from type [float] to [long]" und Sprachshops ein Problem. Hier stochern wir noch ein wenig im trüben woran das liegen mag.

VG

Bei der ersten indexierung erkennt Elasticsearch automatisch den Feldtyp, bspw. float, long usw. 
Wahrscheinlich hat das Feld manchmal eine ganze Zahl und keinen float (Kommazahl). Müsstest das mal checken. Ob das wirklich der Grund ist, weiß ich nicht, wäre aber denkbar bei der Meldung.

Hi Moritz,

die Artikelpreise bei den zwei Artikeln sind alle ohne kommastelle.
Wie gesagt auffällig ist das dieser Fehler nur in den Sprachshops kommt. bei allen anderen stores gehts ohne probleme.

Hey Moritz,

 

ich habe das dynamic mapping mal ausgeschaltet jedoch brachte das keine lösung der fehler bleibt bestehen mit [calculatedPrices.SB_1.calculatedReferencePrice] cannot be changed from type [float] to [long]…

VG