Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Japonca dil için SQL Server Tam Metin Arama altyapısını kullanırken dikkat edilmesi gereken noktalar açıklanmaktadır.
Şunlar için geçerlidir: SQL Server
Özgün KB numarası: 2252955
Giriş
Japonca dilinde bir tümcecik, bu sözcükler arasında boşluk olmayan iki veya daha fazla sözcük içerebilir. Microsoft SQL Server'da, Japonca tümcecik için ön ek araması yapmak için SQL Server Tam Metin arama altyapısını kullandığınızda, Tam Metin arama altyapısı tümceciği ön ek terimi olarak değerlendirmez. Bunun yerine, Tam Metin arama altyapısı tümceciği sözcük terimleri olarak kabul eder. Bunun nedeni, bir sözcüğün boşluk veya noktalama işareti içermeyen bir karakter dizesi olarak tanımlanmasıdır. Ayrıca, arama altyapısı yalnızca ön ek eşleştirme modunda çalışır. Arama altyapısı sonek eşleştirme modunda çalışmaz.
Daha Fazla Bilgi
Örneğin, SQL Server'da aşağıdaki deyimleri çalıştırarak bir tablo oluşturur ve bazı Japonca tümcecikler eklersiniz:
CREATE TABLE test(c1 int PRIMARY KEY,c2 nvarchar(255))
INSERT test VALUES(1,N'添付テスト')
INSERT test VALUES(2,N'Fw: テスト')
INSERT test VALUES(3,N'KK-Information:テスト')
INSERT test VALUES(4,N'[Q] ポリシーテスト')
INSERT test VALUES(5,N'KK-Information:タイトルフィルタテスト2')
INSERT test VALUES(6,N'テスト')
INSERT test VALUES(7,N'フィルタテスト3')
INSERT test VALUES(8,N'テストフィルタ1')
INSERT test VALUES(9,N'RE: テストメール')
INSERT test VALUES(10,N'テストメール')
INSERT test VALUES(11,N'White Listテスト')
INSERT test VALUES(12,N'フィルタリングテスト')
CREATE FULLTEXT CATALOG test AS DEFAULT;
GO
CREATE FULLTEXT INDEX ON test(c2) KEY INDEX PK__<IndexName>;
GO
Ardından aşağıdaki üç sorguyu çalıştırırsınız:
Sorgu 1
SELECT * FROM test WHERE CONTAINS(c2, N'テスト')
Sorgu 1'in sonucu aşağıdaki gibidir:
c1c2
2Fw: テスト
3KK-Bilgi:テスト
6テストSorgu 2
SELECT * FROM test WHERE CONTAINS(c2, 'テスト*')
Sorgu 2'nin sonucu aşağıdaki gibidir:
c1c2
2 Fw: テスト
3 KK-Bilgi:テスト
6 テスト
8 テストフィルタ1
9 RE: テストメール
10 テストメールSorgu 3
SELECT * FROM test WHERE CONTAINS(c2, '*テスト*')
Sorgu 3'ün sonucu aşağıdaki gibidir:
c1c2
2 Fw: テスト
3 KK-Bilgi:テスト
6 テスト
8 テストフィルタ1
9 RE: テストメール
10 テストメールSorguların sonuçlarından, Tam Metin sorgusu sonek eşleştirme modunda çalışmadığından, Sorgu 2'nin sonucunun Sorgu 3'ün sonucuyla aynı olduğunu görebilirsiniz. Buna ek olarak, テスト eşleştirmelerden veya eşleştirmelerden ポリシーテスト テスト farklı bir belirteçtir.
Tümcecikleri belirteç haline getirmek için dil ailesi için bir sözcük ayırıcı kullanılmalıdır. İş kesiciler, tümcecikleri tanımak için boşluklar ve diğer işaretleri kullanır. Bu nedenle, bazı tümcecikler sözcük ayırıcı tarafından tanınamaz ve Japonca dilinde Tam Metin altyapısı kullanılarak aranamaz. Sözcük ayırıcılar hakkında daha fazla bilgi için, Başvuru bölümündeki Sözcük Ayırıcılar ve Kök Ayırıcılar konusuna bakın.
Japonca dilinde Tam Metin arama altyapısını kullanmanın en iyi yöntemi, tümceciklerin sınırlamadan etkilenip etkilenmediğini görmek için tümcecikleri test etmektir. Tümcecik boşluksuz sözcüklerden oluşuyorsa, tümceciği aramak için Tam Metin işlevini kullanamazsınız. Bunun yerine LIKE anahtar sözcüğünü joker karakterlerle birlikte kullanabilirsiniz. Ancak, işlemin performansı
like
Tam Metin aramasının performansından daha düşüktür. Uygulamanız için performans etkisini dikkate almanız gerekir.Aşağıda anahtar sözcüğün
like
tümcecikleri aramak için bazı örnek sorguları verilmiştir.Sorgu 4
SELECT * FROM test WHERE c2 like 'テスト%'
Sonuç aşağıdaki gibidir:
c1c2
6 テスト
8 テストフィルタ1
10 テストメールSorgu 5
SELECT * FROM test WHERE c2 like '%テスト%'
Sonuç aşağıdaki gibidir:
c1c2
1 添付テスト
2 Fw: テスト
3 KK-Bilgi:テスト
4 [Q] ポリシーテスト
5 KK-Bilgi:タイトルフィルタテスト2
6 テスト
7 テストフィルタテスト3
8 テストテストフィルタ1
9 RE: テストテストメール
10 テストテストメール
11 テスト
12 フィルタリングテスト
Not
SQL Server'da Tam Metin arama altyapısını kullanıyorsanız, aşağıdaki sorguyu kullanarak tam metin dizininin içeriği hakkında daha fazla bilgi bulabilirsiniz:
SELECT * FROM sys.dm_fts_index_keywords(db_id('test'), object_id('test'))
GO
Sonuç aşağıdaki gibidir:
anahtar sözcük display_term column_id document_count
0x00660077 fw 2 1
0x0069006E0066006F0072006D006100740069006F006E bilgileri 2 2
0x006B006B kk 2
0x006C00690073007430C630B930C8 listesiテスト 2 1
0x00770068006900740065 beyaz 2 1
0x30BF30A430C830EB30D530A330EB30BF30C630B930C80032 タイトルフィルタテスト2 2 1
0x30C630B930C8 テスト 2 3
0x30C630B930C830D530A330EB30BF0031 テストフィルタ1 2 1
0x30C630B930C830E130FC30EB テストメール 2 2
0x30D530A330EB30BF30C630B930C80033 フィルタテスト3 2 1
0x30D530A330EB30BF30EA30F330B030C630B930C8 フィルタリングテスト 2 1
0x30DD30EA30B730FC30C630B930C8 ポリシーテスト 2 1
0x6DFB4ED830C630B930C8 添付テスト 2 1
0xFF DOSYA SONU 2 12
(Etkilenen 14 satır)
Örnek sonuçta yalnızca üç satır sözcüğünü テストiçerir." Tam Metin arama altyapısı "" sözcüğünü "テスト" sözcüğündenテストメール farklı bir belirteç olarak ele alır. SQL Server Tam Metin arama altyapısı hakkında daha fazla bilgi için aşağıdaki Microsoft web sitelerini ziyaret edin:
- Tam Metin Araması
- Desteklenen Sorgu Terimleri Formları (Tam Metin Arama)
- Sözcük ayırıcılarını ve sözcük ayırıcılarını arama için yapılandırma (SQL Server)
- Arama Sorgusu Sonuçları Nasıl Derecelenir (Tam Metin Arama)
- CONTAINS (Transact-SQL)
- sys.dm_fts_index_keywords (Transact-SQL)
- SQL Server Müşteri Danışmanlığı Ekibi