|
|
Yayınlandı 4.10.2015 21:03:04
|
|
|

1. Birkaç iyi yazı okudum,
SQL Server 2008 Tam Metin Arama Genel Bakış http://www.cnblogs.com/galaxyyao/archive/2009/02/13/1390139.html
Tam metin indeks http://www.cnblogs.com/liulun/articles/1368655.html
Öncelikle, bir paragraf kopyalayın:
S: Neden tam metin arama? C: Metnin sorgulama hızı yavaş olduğu için (metin üzerine bir indeks oluşturmak önerilmez, bu yüzden bu) S: 2005'ten fark var mı? A; Elbette bir fark var ve isimden önce bir entegre (integrated) gelir. Daha önce, 05'in ayrı bir indeks dosyası ve motoru vardı, ancak 08'de dosya grubuna entegre edildi. S: İlke nedir? C: Anahtar kelimelere dayalı S: Sıradan endekslerle nasıl ilişkisi var? C: Amaç, sorgu hızını artırmaktır. Tam metin indeksler, indekslerle birçok benzer özelliğe sahiptir Tam metin arama, anlamsal arama kullanır (bu teknik kulağa çok derin geliyor) ve ikili belgeler için de kullanılabilir. S: Ne için? C: En basit örnek vermek gerekirse, makale araması, bulanık eşleştirme, hızlı ve büyük miktarlar da sıralanabilir.
İki. Sonra MSDN'ye gidip biraz Dongdong izleyin:
Tam metin indeks genel görünümü
http://msdn.microsoft.com/zh-cn/library/cc879306.aspx
Aşağıdaki alıntılardan bazıları aşağıdaki gibi kopyalanmıştır:
1. SQL Server 2008'de tam metin motoru veritabanı motoruna tamamen entegre edilmiştir. Tam metin motoru artık ayrı bir süreç (msftesql.exe) yerine SQL Server sürecinde (sqlservr.exe) yer alıyor. Tam metin motoru veritabanı motoruna entegre edilerek, tam metin yönetilebilirliği artırılır, hibrit sorgular optimize edilir ve genel performans iyileştirilir. Kimden: http://msdn.microsoft.com/zh-cn/library/ms142587.aspx
2. Tam metin arama oluşturma adımları, ekran görüntüsü almak için tembel olmak, başkalarının bunu yaptığına bakmak, doğrudan alıntı yapmak ama ikinci sayfadan itibaren benim yerel arama yapmamdan farklı, tam metin arama oluşturmak için tabloya doğrudan sağ tıklayamıyorum, varsayılan gri, sadece depodaki tam metin indeks dizin kataloğunda bir indeks oluşturabiliyorum. http://www.sql-server-performance.com/2010/full-text-search-2008/
3. İlk başta, tam metin arama dizininin ilgili sabit diskte bir dizin olması gerektiğini düşündüm; bu locune kavramına benzer. Ancak aslında, SQL Server 2008 itibarıyla tam metin dizini sanal bir nesnedir ve hiçbir dosya grubuna ait değildir. Tam metin içerik tablosu, tam metin indeksler kümesini temsil eden mantıklı bir kavramdır. Kaynak:
http://msdn.microsoft.com/zh-cn/library/ms142497.aspx
4. Sadece bir tablo veya indeks görünümü için tam metin bir indeks oluşturabilirsiniz, normal bir görünüm için tam metin indeks oluşturamazsınız.
Tam metin indeks, tam metin motoru tarafından oluşturulan ve sürdürülen özel bir işaretçi tabanlı fonksiyonel indeks türüdür. Bir tablo veya görünüm üzerinde tam metin arama oluşturmak için, tablo veya görünüm benzersiz, sıfırlanamayan tek sütunlu bir indekse sahip olmalıdır. Tam metin motoru, tablodaki her satırı benzersiz sıkıştırılabilir anahtara eşlemek için bu benzersiz indeks kullanmalıdır. Tam metin indeksleri Char, Varchar, Nchar, Nvarchar, Text, Ntext, Image, XML, Varbinary ve Varbinary(max) sütunlarını içerebilir.
5. Tablo A'da tam metin bir indeks oluşturmak için bir önerme vardır; yani, Tablo A'da en az bir benzersiz indeks olmalıdır; yani, Tablo A'da indeks yoksa, Tablo A'da tam metin bir indeks oluşturmak istememektir.
6.SQL Server 2008'de, tam metin indeks boyutu yalnızca SQL Server örneğini çalıştıran bilgisayarın mevcut bellek kaynaklarıyla sınırlandırılır. http://msdn.microsoft.com/zh-cn/library/cc879306.aspx
7. Birden fazla sütunu sorgulama (tam metin arama) Arama için bir sütun listesi belirleyerek, CONTAINS önlemini kullanarak birden fazla sütun sorgulaması yapabilirsiniz. Bu sütunlar aynı tablodan olmalıdır.
Parantez kullanın, Üretimden İsim, Renk Seçin. Ürün HARADA CONTAINS((Ad, Renk), 'Kırmızı';
Ya da * işaretini kullanın, SEÇİN Isim, Renk ÜRETIMDEN.Ürün HARADA CONTAINS(*, 'Kırmızı');
Kaynak: http://msdn.microsoft.com/zh-cn/library/ms142488.aspx
9. Birden fazla tablo için birden fazla sütunu sorgulayın
Yalnızca CONTAINS veya CONTAINS, örneğin WHERE CONTAINS(t1) gibi. İsim, 'Red') veya CONTAINS(t2. isim, 'Red');
10. Tam metin sorguların performansını optimize etmek
Tam metin kataloğu yeniden düzenlemek için ALTER FULL TEXT CATALOG REORGANIZE kullanabilirsiniz.
TAM METİN KATALOĞUNU DEĞIŞTIRİN ACCENT_SENSITIVITY=KAPALI MÜŞTERI YENIDEN OLUŞTURMA
Daha fazla bilgi için şuna bakabilirsiniz: http://msdn.microsoft.com/zh-cn/library/cc879244.aspx
11. Bir önek araması yapın http://msdn.microsoft.com/zh-cn/library/ms142492.aspx
Belirli bir önekte sahip kelimeler veya ifadeler için tam metin araması yapabilirsiniz.
Önek araması yaptığınızda, sütundaki belirtilen önekle başlayan metin içeren tüm öğeler geri döner. Örneğin, topun önekini içeren tüm satırları (örneğin topple, topping ve top kendisi) aramak için sorgu şöyle görünecektir:
ÜRÜN IÇINDEN * SEÇ (ProductName, '"auto*"'' ); Yıldız işaretinden (*) önce belirtilen metinle eşleşen tüm metin geri gönderilecektir.
Not: Metin ve yıldız işaretinden önce ve sonra çift tırnak eklemezseniz (örneğin CONTAINS (DEscrip{filter}tION, 'top*')), tam metin araması yıldız işaretini joker kart olarak kullanmaz.
Bir ön ek bir ifade ise, ifadeyi oluşturan her token ayrı bir ön ek olarak kabul edilir. Bu öneklerle başlayan kelimeleri içeren tüm satırlar geri döner. Örneğin, "hafif ekmek*" öneki "hafif ekmekli", "hafif ekmekli" veya "hafif ekmek" metinlerini içeren satırlar arar, ancak "hafifçe kızarmış ekmek" döner.
|
Önceki:Jacky Cheung'un Kantonca bir şarkısı, oldukça iyi hissettiriyorÖnümüzdeki:Jiangsu Eyaleti, Lianyungang'ta bir kız tuvalette gömleği soyuldu ve dövüldü
|