ΠΠΎΠ³Π΄Π° Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡ Π»Π΅Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ SKU ΠΈ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Akeneo Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΈΠΌΠΏΠΎΡΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
[2018-04-06 15:35:24] batch.ERROR: Encountered an error executing the step:
An exception occurred while executing 'INSERT INTO pim_catalog_completeness
(ratio, missing_count, required_count, locale_id, channel_id, product_id) VALUES (?, ?, ?, ?, ?, ?)'
with params [100, 0, 1, 39, 1, 4404]:
SQLSTATE[23000]: Integrity constraint violation:
1062 Duplicate entry '1-39-4404' for key 'searchunique_idx' [] []
ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? ΠΠ»ΠΈ ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ? Π‘ΡΡΠ°Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΊΠ»ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π² ΠΌΠΎΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ 4404, Π½ΠΎ Π΅Π³ΠΎ Π½Π΅Ρ.
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: ΠΏΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΎΡΠΌΠΎΡΡΠ΅ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ ΡΠ°ΠΉΠ», Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ SKU. ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ? ΠΠ΅Π»Π°ΡΡΡΡ Π»ΠΈ ΡΡΠΈ Π²Π΅ΡΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ? (ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π½Π΅ ΡΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ).
Π― ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π² 2 ΡΡΠ΅Π½Π°ΡΠΈΡΡ .
ΠΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΈΠΌΠΏΠΎΡΡΠ°
ΠΠ°ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ½ΠΎ: ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ sku Π² ΡΠ°ΠΉΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ°, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΠ½Π΄Π΅ΠΊΡΡ Elastic Search ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ
ΠΡΡΠ³ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π±ΡΠ», ΠΊΠΎΠ³Π΄Π° elasticsearch ΡΠΎΡ
ΡΠ°Π½ΠΈΠ» Π·Π°ΠΏΠΈΡΡ ΠΎΠ± ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ Π² ΡΠ²ΠΎΠΈΡ
ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ
ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Β«ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΒ» ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ².
ΠΡΠΎ Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Akeneo Π½Π΅ ΡΠ΄Π°Π»ΠΈΠ» Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ES Π±Π°Π·ΠΎΠ²ΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π²ΡΡΡΠ½ΡΡ ΡΠ΄Π°Π»ΠΈΠ» Π·Π°ΠΏΠΈΡΡ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
Π― Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅Π½, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ
ΠΏΡΠΈΡΠΈΠ½ Π²ΡΠ·Π²Π°Π» ΡΡΠΎ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΈ ΡΠΎΠ³Π΄Π° ΡΡΠΎ ΠΎΡΡΠ°ΡΡΠΈ ΠΌΠΎΡ Π²ΠΈΠ½Π°.
ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Π½ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΡΠ±ΡΠΎΡΡΡΠ΅ Π²ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ES:
bin/console akeneo:elasticsearch:reset-indexes
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΉΡΠ΅:
bin/console pim:product:index --all
bin/console pim:product-model:index --all
ΠΠΎΠ»ΡΡΠΈΠ» ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ @wigman . Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π» ΠΠ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ Π² Π΄ΡΡΠ³ΡΡ, ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π±ΡΠ» Π΄ΡΡΠ³ΠΈΠΌ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ @wigman , ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ
ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΡΡΡΠ°ΠΌΠΈ ΡΠΎΠ²Π°ΡΠΎΠ².
ΠΠΎΠΌΠ°Π½Π΄Π° bin/console akeneo:elasticsearch:reset-indexes
ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΠΊΠ° Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π²Π΅ΡΠ½ΡΡΡΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ 150Β 000+ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ 1Β 000+ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ², ΡΡΠΎ Π½Π΅ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π΄ΠΎ 4 ΡΠ°ΡΠΎΠ².
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π² 2 ΡΡΠ΅Π½Π°ΡΠΈΡΡ .
ΠΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠΌΠΏΠΎΡΡΠ°
ΠΠ°ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ½ΠΎ: ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ sku Π² ΡΠ°ΠΉΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ°, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΠ½Π΄Π΅ΠΊΡΡ Elastic Search ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ
ΠΡΡΠ³ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π±ΡΠ», ΠΊΠΎΠ³Π΄Π° elasticsearch ΡΠΎΡ ΡΠ°Π½ΠΈΠ» Π·Π°ΠΏΠΈΡΡ ΠΎΠ± ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ Π² ΡΠ²ΠΎΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Β«ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΒ» ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ².
ΠΡΠΎ Π±ΡΠ»ΠΎ Π²ΡΠ·Π²Π°Π½ΠΎ Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Akeneo Π½Π΅ ΡΠ΄Π°Π»ΠΈΠ» Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ES Π±Π°Π·ΠΎΠ²ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π²ΡΡΡΠ½ΡΡ ΡΠ΄Π°Π»ΠΈΠ» Π·Π°ΠΏΠΈΡΡ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π― Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅Π½, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ ΠΏΡΠΈΡΠΈΠ½ Π²ΡΠ·Π²Π°Π» ΡΡΠΎ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΈ ΡΠΎΠ³Π΄Π° ΡΡΠΎ ΠΎΡΡΠ°ΡΡΠΈ ΠΌΠΎΡ Π²ΠΈΠ½Π°.
ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Π½ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΡΠ±ΡΠΎΡΡΡΠ΅ Π²ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ ES:
bin/console akeneo:elasticsearch:reset-indexes
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΉΡΠ΅:
bin/console pim:product:index --all
bin/console pim:product-model:index --all