ΠΠΏΠΈΡΠΈΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ :
ΠΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ search_after
ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ
Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²! Π― ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ElasticSearch ΠΊ GraphQL API, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Relay, ΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠ³Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π΅ΡΡΡ Π»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ°. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ ΠΌΠΎΠ³Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ, Π² ΠΊΠΎΠ½ΡΠ΅ Π½Π°Π±ΠΎΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ Π½Π°Π±ΠΎΡΠΎΠΌ (ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ). Π₯ΠΎΡΡ ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΡΠΊΠ»ΡΠΆΠΈΠΌ. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ± Π»ΠΈΠ±ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΡΡΠΌΡΡ
ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π»ΠΈΠ±ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ° Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅? Π― Π²ΠΈΠΆΡ, ΡΡΠΎ ΡΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π£ΡΠΈΡΡΠ²Π°Ρ ΡΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, ΠΌΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² search_after
. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ API Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠ² Lucene Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ, Π² Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ»Π°Π½Π΅, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° Π΄ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ. Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ Π²ΡΠΏΡΡΠΊ ΠΎΡΠΊΡΡΡΡΠΌ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΎΠ½ Π²ΡΠ·ΠΎΠ²Π΅Ρ.
ΠΊΠΎΠΏΠΈΡ @elastic/es-search-aggs
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ° ΠΊ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΌΡ Π½Π΅ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΠ°Π±ΠΎΡΠΎΠΊ, ΠΈ Π΅ΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Ρ Π·Π°ΠΊΡΡΠ²Π°Ρ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π£ΡΠΈΡΡΠ²Π°Ρ ΡΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, ΠΌΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²
search_after
. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ API Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠ² Lucene Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ, Π² Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ»Π°Π½Π΅, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° Π΄ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ. Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ Π²ΡΠΏΡΡΠΊ ΠΎΡΠΊΡΡΡΡΠΌ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΎΠ½ Π²ΡΠ·ΠΎΠ²Π΅Ρ.