Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 29|Yanıt: 2

[İpucu] (MSSQL) SQL Server Tam Metin Arama, Tam Metin İndeksini

[Bağlantıyı kopyala]
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:
Docker MSSQL 2022 tam metin arama hizmetini yükler
https://www.itsvse.com/thread-10857-1-1.html

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
 Ev sahibi| Yayınlandı2 dakika önce |
 Ev sahibi| Yayınlandı58 saniye önce |
EF Core, tam metin arama işlevselliği kullanırBağlantı girişi görünür.
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com