Hallo,
ich bin gerade dabei unsere Shopware auf Elastic umzustellen. Das hat auch soweit „eigentlich“ funktioniert. Es gibt Fehler beim sw:es:index:populate, der Index wird aber trotzdem aufgebaut. Alle Shops laufen danach auch über elastic, nur in einem funktionieren die Kategorielistings nicht mehr.
Fehler bei sw:es:index:populate:
PHP Notice: unserialize(): Error at offset 139 of 144 bytes in /data/www/shopware/engine/Shopware/Bundle/StoreFrontBundle/Gateway/DBAL/Hydrator/Hydrator.php on line 156
Offset und Bytezahl wechseln
Das ist natürlich nicht besonders aussagekräftig. Im Elasticsearch log findet sich dann folgendes:
failed to put mappings on indices [[[sw_shop8_20180830063521/KOnqlJ7NRjiNA5H8B16dZQ]]], type [product]
java.lang.IllegalArgumentException: mapper [calculatedPrices.sani_1.rule.price] cannot be changed from type [long] to [float]
at org.elasticsearch.index.mapper.MappedFieldType.checkTypeName(MappedFieldType.java:151) ~[elasticsearch-5.6.11.jar:5.6.11]
at org.elasticsearch.index.mapper.MappedFieldType.checkCompatibility(MappedFieldType.java:163) ~[elasticsearch-5.6.11.jar:5.6.11]
at org.elasticsearch.index.mapper.FieldTypeLookup.checkCompatibility(FieldTypeLookup.java:128) ~[elasticsearch-5.6.11.jar:5.6.11]
.....
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:210) [elasticsearch-5.6.11.jar:5.6.11]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Beim aufruf einer Kategorie im betreffenden Shop meldet das Log folgendes:
[DEBUG][o.e.a.s.TransportSearchAction] [9QxgItN] [sw_shop6_20180830063505][0], node[9QxgItNnRJKD0UpjKBAeAQ], [P], s[STARTED], a[id=nDa5WIqXSa-0YQaapd63HQ]: Failed to execute [SearchRequest{searchType=QUERY_THEN_FETCH, indices=[sw_shop6], indicesOptions=IndicesOptions[id=38, ignore_unavailable=false, allow_no_indices=true, expand_wildcards_open=true, expand_wildcards_closed=false, allow_alisases_to_multiple_indices=true, forbid_closed_indices=true], types=[product], routing='null', preference='null', requestCache=null, scroll=null, maxConcurrentShardRequests=5, batchedReduceSize=512, preFilterShardSize=128, source={
......
"sort" : [
{
"calculatedPrices.reCH_2.calculatedPrice" : {
"order" : "asc"
}
},
{
"id" : {
"order" : "asc"
}
}
]
}}]
org.elasticsearch.transport.RemoteTransportException: [9QxgItN][127.0.0.1:9300][indices:data/read/search[phase/query]]
Caused by: org.elasticsearch.index.query.QueryShardException: No mapping found for [calculatedPrices.reCH_2.calculatedPrice] in order to sort on
at org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:262) ~[elasticsearch-5.6.11.jar:5.6.11]
at org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:156) ~[elasticsearch-5.6.11.jar:5.6.11]
.......
[?:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
[2018-08-30T06:39:12,894][DEBUG][o.e.a.s.TransportSearchAction] [9QxgItN] All shards failed for phase: [query]
org.elasticsearch.index.query.QueryShardException: No mapping found for [calculatedPrices.reCH_2.calculatedPrice] in order to sort on
at org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:262) ~[elasticsearch-5.6.11.jar:5.6.11]
......
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Relevant dürfte das hier sein : No mapping found for [calculatedPrices.reCH_2.calculatedPrice] in order to sort on
reCH ist die Kundengruppe des Shops.
Es gibt auch hier im Forum schon meherere die das Problem, oder ein sehr ähliches hatten. Allerdings verlaufen diese Threads alle im nirgendwo.
Jemand eine Idee wo man hier ansetzen kann ?