Tam Metin Aramaya Giriş (tsvector, to_tsquery)
Belgeleri tsvector ile indeksleyin, to_tsquery ile doğal dil sorguları çalıştırın ve sonuçları ts_rank ile sıralayın.
Tam Metin Aramaya Giriş (tsvector, to_tsquery), CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
Tam Metin Araması Neden Kullanılır
LIKE/ILIKE, alt dizeleri bulur. Tam metin araması (FTS) sözcükleri anlar: kök bulma, durak sözcükleri, dil kuralları ve sıralanmış uygunluk. PostgreSQL'e dahildir — eklenti gerekmez.
İki Temel Tür
FTS iki türe dayanır:
tsvector— ayrıştırılmış belge: sözlük birimleri + konumlartsquery— ayrıştırılmış sorgu: sözlük birimleri + mantıksal işleçler
Bunları @@ işlemcisiyle eşleştirirsiniz.
Belgeyi Ayrıştırma
Ham metni bir tsvector değerine dönüştürün:
SELECT to_tsvector('english', 'The quick brown foxes jump over the lazy dogs');
-- 'brown':3 'dog':9 'fox':4 'jump':5 'lazi':8 'quick':2
-- Stop words ('the', 'over') dropped; words stemmed (foxes → fox)Sorguyu Ayrıştırma
Arama girdisi için de aynı işlemi yapın:
SELECT to_tsquery('english', 'foxes & dogs');
-- 'fox' & 'dog'Eşleştirme
Denemek için @@ kullanın:
SELECT to_tsvector('english', 'The lazy fox')
@@ to_tsquery('english', 'fox'); -- TRUEBelge Tablosunu Dizinleme
Hızlı sorgular için bir tsvector sütunu ve GIN dizini ekleyin:
CREATE TABLE articles (
id BIGSERIAL PRIMARY KEY,
title TEXT NOT NULL,
body TEXT NOT NULL
);
-- Either keep a generated tsvector column:
ALTER TABLE articles
ADD COLUMN search_doc tsvector
GENERATED ALWAYS AS (
to_tsvector('english',
coalesce(title,'') || ' ' || coalesce(body,'')
)
) STORED;
CREATE INDEX articles_search_idx ON articles USING GIN (search_doc);Arama
Dizin sayesinde sorgular hızlıdır:
SELECT id, title
FROM articles
WHERE search_doc @@ to_tsquery('english', 'postgres & json')
ORDER BY id DESC;Sorgulardaki Mantıksal İşleçler
tsquery, & (AND), | (OR), ! (NOT) ve gruplandırmayı destekler:
to_tsquery('english', '(cat | dog) & !rabbit');Öbek Araması
Bitişik sözcükler için <-> kullanın:
to_tsquery('english', 'postgres <-> performance');
-- finds 'postgres performance', not 'postgres is great for performance'Kullanıcı Dostu Web Sorguları: websearch_to_tsquery
Google tarzı sorguları kabul edin:
SELECT websearch_to_tsquery('english', 'postgres "json indexing" -mongo');Sonuçları Sıralama
ts_rank veya ts_rank_cd ile sıralayın:
SELECT id, title,
ts_rank(search_doc, query) AS rank
FROM articles, to_tsquery('english', 'postgres & json') AS query
WHERE search_doc @@ query
ORDER BY rank DESC
LIMIT 20;Vurgulama
Eşleşen parçacıkları gösterin:
SELECT ts_headline('english', body,
to_tsquery('english', 'postgres & json'),
'StartSel=<mark>,StopSel=</mark>')
FROM articles
WHERE search_doc @@ to_tsquery('english', 'postgres & json');Özet
FTS, PostgreSQL'e dahildir.
tsvector+tsquery+@@- Hız için GIN dizini
- Kullanıcı girdisi için websearch_to_tsquery
- Uygunluğa göre sıralama için ts_rank
Hızlı Kontrol
Bir tsvector değerini bir tsquery ile hangi işleç eşleştirir?
Sıkça Sorulan Sorular
“Tam Metin Aramaya Giriş (tsvector, to_tsquery)” dersi ücretsiz mi?
Evet — “Tam Metin Aramaya Giriş (tsvector, to_tsquery)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“Tam Metin Aramaya Giriş (tsvector, to_tsquery)” dersinde ne öğreneceğim?
Belgeleri tsvector ile indeksleyin, to_tsquery ile doğal dil sorguları çalıştırın ve sonuçları ts_rank ile sıralayın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Tam Metin Aramaya Giriş (tsvector, to_tsquery)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Birleştirme: || ve CONCAT
- UPPER, LOWER, SUBSTRING, REPLACE
- TRIM, LPAD, RPAD
- Tam Metin Aramaya Giriş (tsvector, to_tsquery)