|
|
YayınlandıDün saat 20:20'de
|
|
|
|

Tam metin arama, SQL Server veritabanı motorunun isteğe bağlı bir bileşenidir. SQL Server kurarken tam metin aramasını seçmediyseniz, SQL Server kurulumcusunu tekrar çalıştırıp ekleyin.
Genel Bakış
Tam metin indeks, bir tabloda bir veya daha fazla karakter tabanlı sütun içerir. Bu sütunlar aşağıdaki veri türlerinden herhangi birine sahip olabilir: char, varchar, nchar, nvarchar, text, ntext, image, xml veya varbinary(max) ve FILESTREAM. Her tam metin indeks, tablodaki bir veya daha fazla sütun için bir indeks oluşturur ve her sütun belirli bir dil kullanabilir.
Tam metin sorguları, belirli dillerin kurallarına göre (örneğin İngilizce veya Japonca) kelimeler ve ifadeler üzerinde çalışır; böylece tam metin indeksindeki metin verilerine göre dil aramaları yapılır. Tam metin sorgular basit kelimeler ve ifadeler veya birden fazla kelime veya ifade biçimi içerebilir. Tam metin sorgu, en az bir eşleşme içeren tüm belgeleri (yani "hit" olarak da bilinir) döndürür. Eşleşme, hedef belgenin tam metin sorgusunda belirtilen tüm terimleri içermesi ve diğer arama kriterleriyle (örneğin eşleşen terimler arasındaki mesafe) eşleşmesiyle gerçekleşir.
Linux Docker MSSQL 2022 Tam Metin Arama Hizmeti Kurulumu
Kaynaklar şunlardır:
SQL SERVER'ın tam metin arama özelliğinin yüklü olup olmadığını kontrol edin
Komut şöyledir:
SQL Server Tam Metin Arama, Tam Metin İndeksini
Öncelikle, yeni bir test kütüphanesi oluşturun ve test verisini ekleyin. Script şöyledir:
Tam metinli bir içerik tablosu oluşturun
Tam metin indeksini depolamak için tam metin içindekiler tablosu kullanılır. Aşağıdaki betikleri kullanarak doğrudan oluşturabilirsiniz:
Veritabanı tabloları için tam metin indeksler oluşturun
Bir veritabanı tablosu için tam metin indeks oluştururken, ilgili dili belirtmeniz gerekir. Kelime segmentasyonu diller arasında değiştiği için, SQL Server tablodaki verileri işlemek için ilgili dilin kelime segmentasyonunu kullanır. SQL Server'ın tam metin araması yaklaşık 50 farklı dili destekliyor ve sys.fulltext_languages tabloları sorgulayarak tüm desteklenen dilleri görüntülemenizi sağlıyor. Komuta:
Aşağıda gösterildiği gibi:
Sonra, Haber tablosunda Başlık ve İçerik alanlarına Çince basitleştirilmiş için tam metin bir indeks ekliyoruz:
Töller ve fonksiyonlar için tam metin araması
Tam metin sorguları tam metin önlemleri kullanır (IÇERIRveSERBEST METIN) ve tam metin fonksiyonları (CONTAINSTABLEveFREETEXTTABLE)。 Çeşitli sorgu terimlerini destekleyen karmaşık Transact-SQL sözdizimi destekler.
CONTAINS ile FREETEXT arasındaki fark
CONTAINS: Bağlantı girişi görünür.
Metinde belirli kelimeleri veya ifadeleri bulmak için hassas eşleştirme yöntemleri kullanın. Yakınlık arama (örneğin, kelimelerin birbirine yakın görünmesi gerekir), ön ek araması ve daha fazlası gibi karmaşık sorgu koşullarını destekler. Genellikle arama sonuçları üzerinde daha spesifik kontrol gerektiren durumlarda kullanılır.
FREETEXT: Bağlantı girişi görünür.
Daha esnek ve doğal dil tabanlı bir arama deneyimi sunar. Özel bir arama kriterine gerek yoktur; Girdi metnini otomatik olarak ayrıştırır ve ilgili içeriği bulmaya çalışır. Google gibi basit anahtar kelime aramaları yapmak isteyen kullanıcılar için daha uygun, belirli konumlar veya formatlar konusunda endişelenmeden.
Komutlar şunlardır:
Aşağıda gösterildiği gibi:
CONTAINSTABLE ve FREETEXTTABLE
CONTAINSTABLE sorgu kriterlerini karşılayan tablolar döndürür. SQL ifadelerinde bunları düzenli tablolar olarak ele alabiliriz ve CONTAINSTABLE kullanan sorgular her satır için bir RANK değeri ve bir ANAHTAR döndürür. RANK, korelasyon eşleşme derecesini belirtmek için kullanılır; değerler 0~1000 arasındadır ve KEY ana tablonun kimliğidir. FREETEXTTABLE önce sorgulanacak kelimeleri ve cümleleri segmentlere ayırır, ardından eşleşme için sorgular atar. Komut şöyledir:
Aşağıda gösterildiği gibi:
Ayrıca, segmentasyon sonuçlarını şu sys.dm_fts_parser sorgulayarak kontrol edebilirsiniz:
Aşağıda gösterildiği gibi:
sorun
Soru: CONTAINS varsayılan olarak bulanık sorguları desteklemez. CONTAINS(Column, 'apple') girerseniz, kök kelimeyle (örneğin, apples) eşleşir ama ananas ile eşleşmez. Çözüm: Bulanık sorgular gerekirse, joker kartlardan önce ve sonra yerleştirilmelidirÇift tırnak işareti ve yıldız işareti ekleyin:CONTAINS(Sütun, '"*apple*"'')
Referans:
Bağlantı girişi görünür.
Bağlantı girişi görünür. |
Önceki:Uzaktan çalışma, iş ve serbest çalışma platformu web sitesi
|