ΠΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΠΎΠΈΡΠΊ Π² PostgreSQL ΠΈΠ»ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ: Π³Π΄Π΅ Π³ΡΠ°Π½ΠΈΡΠ°?
PostgreSQL ΡΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΡΠ΅ΡΠ΅Π· tsvector/tsquery Ρ GIN-ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ, ΡΠ°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ts_rank, ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ ΠΈ ΡΡΠ΅ΠΌΠΌΠ΅ΡΠ°ΠΌΠΈ, Π° ΡΠ΅ΡΠ΅Π· pg_trgm β Π΅ΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΡΠΏΡΡ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΎΡΡΠΈ ΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅, Π° Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ β ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π²ΡΠΎΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ: Π½Π΅Ρ ΡΠ°ΡΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠΈΡΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Π½ΡΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ: ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΡΠ°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ Π±ΡΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ, ΡΠ°ΡΠ΅ΡΠ½Π°Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ Ρ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΠΌΠΈ ΠΏΠΎ Π΄Π΅ΡΡΡΠΊΠ°ΠΌ ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΈ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΠΎΡΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ, ΠΎΠ±ΡΡΠΌΡ Π² Π΄Π΅ΡΡΡΠΊΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π½Π°ΡΠΈΠ½Π°ΡΡ Π² PostgreSQL, ΠΏΠ΅ΡΠ΅Π΅Π·ΠΆΠ°ΡΡ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠΈΠΌΠΏΡΠΎΠΌΠ°ΠΌ β ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ts_rank Π½Π° Π±ΠΎΠ»ΡΡΠΈΡ
Π²ΡΠ±ΠΎΡΠΊΠ°Ρ
, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΠ°ΡΠ΅ΡΠ°Ρ
ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΎΡΡΠΈ.