Skip to content
7 / 10

ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹ΠΉ поиск Π² PostgreSQL ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ: Π³Π΄Π΅ Π³Ρ€Π°Π½ΠΈΡ†Π°?

PostgreSQL ΡƒΠΌΠ΅Π΅Ρ‚ полнотСкстовый поиск Ρ‡Π΅Ρ€Π΅Π· tsvector/tsquery с GIN-индСксом, Ρ€Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ts_rank, словарями ΠΈ стСммСрами, Π° Ρ‡Π΅Ρ€Π΅Π· pg_trgm β€” Π΅Ρ‰Ρ‘ ΠΈ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ с поиском подстроки. Π­Ρ‚ΠΎΠ³ΠΎ достаточно, ΠΊΠΎΠ³Π΄Π° корпус Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², трСбования ΠΊ рСлСвантности ΡƒΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Π΅, Π° Π³Π»Π°Π²Π½ΠΎΠ΅ прСимущСство β€” отсутствиС Π²Ρ‚ΠΎΡ€ΠΎΠΉ систСмы: Π½Π΅Ρ‚ рассинхронизации, поиск Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ инфраструктуры. Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Π½ΡƒΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ: слоТноС Ρ€Π°Π½ΠΆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с бустами ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, фасСтная навигация с агрСгациями ΠΏΠΎ дСсяткам ΠΏΠΎΠ»Π΅ΠΉ, подсказки ΠΈ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, поиск ΠΏΠΎ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΡΠ·Ρ‹Ρ‡Π½ΠΎΡΡ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΎΠ±ΡŠΡ‘ΠΌΡ‹ Π² дСсятки ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² с высокой частотой запросов. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π² PostgreSQL, ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ симптомам β€” ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ts_rank Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°Ρ…, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² фасСтах ΠΈ настраиваСмой рСлСвантности.

ΠŸΠΎΠ»Π½ΠΎΡ‚Π΅ΠΊΡΡ‚ΠΎΠ²Ρ‹ΠΉ поиск Π² PostgreSQL ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ: Π³Π΄Π΅ Π³Ρ€Π°Π½ΠΈΡ†Π°? | JScriptiser