Elasticsearch Π³ΠΎ ΠΎΠ±ΡΠ°Π²ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° elasticsearch-py 7.14.0, ΠΎΡΠΈΡΠΈΡΠ°Π»Π½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π·Π° ΡΠ°Π·ΠΈΠΊΠΎΡ Python, ΠΊΠΎΡΠ° ΡΠΎΠ΄ΡΠΆΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π° ΡΡΠΎ ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠ° ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ ΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΈ ΠΊΠΎΠΈ Π½Π΅ ΡΠ° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Elasticsearch. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ΅Π³Π° ΡΠ΅ ΠΈΡΡΡΠ»ΠΈ Π³ΡΠ΅ΡΠΊΠ° Π°ΠΊΠΎ Π΄ΡΡΠ³Π°ΡΠ° ΡΡΡΠ°Π½Π° ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΠ²Π° Π²ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ βX-Elastic-Productβ ΠΊΠ°ΠΊΠΎ Π½Π΅ΡΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΠΎΠ΄ βElasticsearchβ Π·Π° Π½ΠΎΠ²ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° ΠΈΠ»ΠΈ Π½Π΅ Π³ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈ ΠΎΠ·Π½Π°ΠΊΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ»ΠΈΡΠ°ΡΠ° build_flavor Π·Π° ΠΏΠΎΡΡΠ°ΡΠΈΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° elasticsearch-py ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡΠ²Π° Π΄Π° ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Apache 2.0, Π½ΠΎ Π½Π΅ΡΠ·ΠΈΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΠ΅Π³Π° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π½Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ Π½Π° Elasticsearch. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΠΌΠ°Π·ΠΎΠ½, Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ΡΠΎ Π²Π»ΠΈΡΠ°Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° Π²ΠΈΠ»ΡΡΠΊΠΈΡΠ΅ Π½Π° Open Distro Π·Π° Elasticsearch ΠΈ OpenSearch, ΡΡΠΊΡ ΠΈ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°ΡΠ° Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈΡΠ΅ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° Elasticsearch. Π‘Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ ΠΎΡΠ΅ΠΊΡΠ²Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π·Π° JavaScript ΠΈ Hadoop.
ΠΠ΅ΡΡΡΠ²Π°ΡΠ° Π½Π° Elasticsearch ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠΎ Π΄Π°Π²Π°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΎΠ±Π»Π°ΠΊ ΠΊΠΎΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°Π°Ρ Elasticsearch ΠΊΠ°ΠΊΠΎ ΠΎΠ±Π»Π°ΠΊ ΡΡΠ»ΡΠ³ΠΈ, Π½ΠΎ Π½Π΅ ΠΊΡΠΏΡΠ²Π°Π°Ρ ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΎΡ. Elasticsearch Π΅ Π½Π΅Π·Π°Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΠΎΠ΄ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΠΎΠ±Π»Π°ΠΊ-ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅ΡΠΈΡΠ΅ ΠΊΠΎΠΈ Π½Π΅ΠΌΠ°Π°Ρ Π½ΠΈΠΊΠ°ΠΊΠ²Π° Π²ΡΡΠΊΠ° ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΠΈΠΌΠ°Π°Ρ ΠΊΠΎΡΠΈΡΡ ΠΎΠ΄ ΠΏΡΠ΅ΠΏΡΠΎΠ΄Π°ΠΆΠ±Π° Π½Π° Π³ΠΎΡΠΎΠ²ΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°, Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ°ΠΌΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ ΠΎΡΡΠ°Π½ΡΠ²Π°Π°Ρ Π±Π΅Π· Π½ΠΈΡΡΠΎ.
Elasticsearch ΠΏΡΠ²ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΡΠΎ ΠΏΡΠ΅ΠΌΠ΅ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π½Π΅ΡΠ»ΠΎΠ±ΠΎΠ΄Π½Π° SSPL (ΡΠ°Π²Π½Π° Π»ΠΈΡΠ΅Π½ΡΠ° ΠΎΠ΄ ΡΡΡΠ°Π½Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ) ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ ΡΡΠ°ΡΠ°ΡΠ° Π»ΠΈΡΠ΅Π½ΡΠ° Apache 2.0. SSPL Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Π΅ ΠΏΡΠ΅ΠΏΠΎΠ·Π½Π°Π΅Π½Π° ΠΎΠ΄ OSI (ΠΠ½ΠΈΡΠΈΡΠ°ΡΠΈΠ²Π° ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄) Π΄Π΅ΠΊΠ° Π½Π΅ Π³ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ²Π° ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌΠΈΡΠ΅ Π·Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΈΡΡΡΡΠ²ΠΎΡΠΎ Π½Π° Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΎΡΡΠΊΠΈ Π±Π°ΡΠ°ΡΠ°. Π ΠΏΠΎΠΊΡΠ°Ρ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° SSPL ΡΠ΅ Π±Π°Π·ΠΈΡΠ° Π½Π° AGPLv3, ΡΠ΅ΠΊΡΡΠΎΡ ΡΠΎΠ΄ΡΠΆΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π±Π°ΡΠ°ΡΠ° Π·Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° ΡΠΏΠΎΡΠ΅Π΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° SSPL Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΡΠ°ΠΌΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°, ΡΡΠΊΡ ΠΈ Π½Π° ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΎΠ±Π»Π°ΠΊ.
ΠΠΎ, ΠΎΠ²ΠΎΡ ΡΠ΅ΠΊΠΎΡ ΡΠ°ΠΌΠΎ ΡΠ° Π²Π»ΠΎΡΠΈ ΡΠΈΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ ΠΏΡΠ΅ΠΊΡ Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠΈ Π½Π°ΠΏΠΎΡΠΈ Π½Π° Amazon, Red Hat, SAP, Capital One ΠΈ Logz.io, Π±Π΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅Π½Π° Π²ΠΈΠ»ΡΡΠΊΠ° Π·Π° OpenSearch, ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½Π° ΠΊΠ°ΠΊΠΎ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π²ΠΈΠ΅Π½ΠΎ ΡΠΎ ΡΡΠ΅ΡΡΠ²ΠΎ Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ°. OpenSearch Π±Π΅ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ·Π½Π°Π΅Π½ ΠΊΠ°ΠΊΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° ΡΠ° Π·Π°ΠΌΠ΅Π½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π·Π° ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅, Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Elasticsearch ΠΈ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ Kibana, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ ΠΈ ΠΏΠΎΠ½ΡΠ΄Π° Π·Π° Π·Π°ΠΌΠ΅Π½Π° Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Elasticsearch.
Elasticsearch Π³ΠΎ Π΅ΡΠΊΠ°Π»ΠΈΡΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΡ ΠΈ ΡΠ΅ΡΠΈ Π΄Π° ΠΈΠΌ Π³ΠΎ ΠΎΡΠ΅ΠΆΠ½Π΅ ΠΆΠΈΠ²ΠΎΡΠΎΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° fork ΡΠΎ ΡΠΎΠ° ΡΡΠΎ Π³ΠΎ Π²ΡΠ·ΡΠ²Π° Π·Π° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ, ΠΈΡΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΡΠΈ Π³ΠΎ ΡΠ°ΠΊΡΠΎΡ ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π° ΠΏΠΎΠ΄ Π½Π΅ΡΠ·ΠΈΠ½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° (Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΠΎΡΡΠ°Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΠΈ OpenSearch fork ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΠΈ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ°Π½Π·ΠΈΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ).
ΠΠ°ΠΊΠΎ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° Elasticsearch, ΠΠΌΠ°Π·ΠΎΠ½ ΠΎΠ±ΡΠ°Π²ΠΈ Π΄Π΅ΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ OpenSearch ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΡΠΎ ΡΠ°Π·Π²ΠΎΡ Π½Π° Π²ΠΈΠ»ΡΡΠΊΠΈ ΠΎΠ΄ 12 ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠ½ΡΠ΄ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΌΠΈΠ³ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠΎΠ½ Π½ΠΈΠ². ΠΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π°Ρ Π²ΠΈΠ»ΡΡΠΊΠΈΡΠ΅, Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΠΈΠΌ ΡΠ΅ ΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π° ΠΏΠΎΡΠ΅ΠΊΠ°Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»Π°Ρ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, Π° Π΄ΠΎΠΊΠΎΠ»ΠΊΡ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π°Ρ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅, Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠ°Ρ Π½Π° ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ°.
ΠΠ·Π²ΠΎΡ: opennet.ru