Tarkibga o'tish

026. Full-text search va pg_trgm

Bu mavzuda tsvector, tsquery va o'xshashlik bo'yicha qidirish bo'yicha 21 ta masala bor. Har bir masala oldida qavs ichida sxema nomi va qiyinlik darajasi ko'rsatilgan. Sxemalar Sxemalar va tayyorlov sahifasida berilgan.

Masalani o'zingiz yechib, natijani Kutilgan natija bilan solishtiring. O'zgartiruvchi masalalarda (INSERT, UPDATE, DELETE, DDL) natija shartda aytilgan tekshiruv so'rovidan olingan. Natija 10 qatordan ko'p bo'lsa, birinchi 10 qator ko'rsatilgan.

1. (dokon, oson) 'simple' konfiguratsiya bilan 'Salom dunyo' ni tsvector ga aylantiring.

Kutilgan natija
'dunyo':2 'salom':1

2. (dokon, oson) 'simple' tsvector ichida 'salom' so'zi bormi (@@ plainto_tsquery).

Kutilgan natija
t

3. (dokon, oson) Mahsulot nomida 'Telefon' so'zi bor mahsulotlar sonini full-text qidiruv ('simple') bilan chiqaring.

Kutilgan natija
3

4. (dokon, o'rta) to_tsquery bilan YOKI: 'telefon | noutbuk' ('simple') bo'yicha mahsulotlar soni.

Kutilgan natija
6

5. (dokon, o'rta) ts_rank bilan natijani tartiblash: nomida 'telefon' bo'lgan mahsulotlar id si (ts_rank kamayish, id).

Kutilgan natija
1
11
21

6. (dokon, o'rta) pg_trgm: similarity('telefon','telfon') qiymatini 2 xonaga yaxlitlab chiqaring.

Kutilgan natija
0.50

7. (dokon, qiyin) pg_trgm bilan imlo xatosini toping: 'telfon' ga o'xshashlik 0.2 dan yuqori mahsulotlar soni.

Kutilgan natija
3

8. (dokon, qiyin) GIN indeks: mahsulot nomi uchun tsvector GIN indeks yarating va indeks turini (gin) tekshiring.

Kutilgan natija
gin

9. (dokon, qiyin) Trigram indeks: mahsulot.nom ga gin_trgm_ops indeksi yarating; indeks sonini ko'rsating.

Kutilgan natija
1

10. (maktab, oson) Fan nomlaridan 'tili' so'zini ts qidiruv bilan toping ('simple').

Kutilgan natija
Ona tili
Ingliz tili

11. (maktab, o'rta) websearch_to_tsquery: '"ona tili" -ingliz' bilan fan nomlarini qidiring.

Kutilgan natija
Ona tili

12. (maktab, o'rta) pg_trgm: o'quvchi ismi 'Madina' ga eng o'xshash 3 ta ism (similarity kamayish, id).

Kutilgan natija
Madina Karimova
Madina Karimova
Madina Karimova

13. (maktab, qiyin) Fuzzy izlash: levenshtein (fuzzystrmatch) — 'Madina' va 'Madinaa' masofasi.

Kutilgan natija
1

14. (bank, oson) Filial nomlarida 'filiali' so'zini FTS bilan qidiring (simple).

Kutilgan natija
Buxoro filiali
Andijon filiali

15. (bank, o'rta) Prefiks qidiruv: to_tsquery('simple','jah:*') bilan mijozlar soni.

Kutilgan natija
5

16. (bank, qiyin) Bank mijozlari ismida 'Shahzoda' ga o'xshashlar soni (similarity>0.3).

Kutilgan natija
5

17. (kutubxona, oson) Kitob nomida 'sirlari' bo'lgan kitoblar soni (FTS, simple).

Kutilgan natija
10

18. (kutubxona, o'rta) phraseto_tsquery('simple','kitob 1') bo'yicha kitoblar id sini toping.

Kutilgan natija
1

19. (kutubxona, o'rta) setweight bilan vaznlash: ism (A) va davlat (B) birlashtirib, 'rossiya' topilgan mualliflar.

Kutilgan natija
Lev Tolstoy

20. (kutubxona, qiyin) Trigram o'xshashlik: 'Qodiriy' ga o'xshash muallif ismlari (similarity>0.2) soni.

Kutilgan natija
2

21. (kutubxona, qiyin) Generated tsvector ustun: kitob2 jadvali (nom text, qidiruv tsvector GENERATED ALWAYS AS (to_tsvector('simple',nom)) STORED), 'Kitob yoli' qatori va 'yoli' qidiruvi.

Kutilgan natija
1