स्वीकृत उत्तर पूरी तरह से सही नहीं है। डबल-कोट्स में खोज शब्द को बंद करना शब्दों के समूह को "वाक्यांश" मिलान बनाता है। इस मामले में, ampsersand (&
) को शाब्दिक चरित्र के रूप में माना जा सकता है, जैसे कि एक या अधिक अक्षरों से घिरा हुआ जब ज्ञात शब्द न बनें। बस अपने "AT&T"
उदाहरण को देखते हुए, हम देखते हैं:
DECLARE @Term NVARCHAR(100);
SET @Term = N'"AT&T"';
SELECT * FROM sys.dm_fts_parser(@Term, 1033, 0, 0);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, 0, 1);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, NULL, 0);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, NULL, 1);
GO
रिटर्न:
keyword group phrase occurrence special display expansion source
id id term term type term
0x0061007400260074 1 0 1 Exact Match at&t 0 AT&T
आप देख सकते हैं, एम्परसेंड सभी में कोई समस्या प्रस्तुत करता है, जब तक यह (डबल उद्धरण में संलग्न है "
) जो आप पहले से ही कर रहे हैं, वू!
हालांकि
, कि "Johnson & Johnson"
उदाहरण के लिए के रूप में सफाई से काम नहीं करता है:
DECLARE @Term NVARCHAR(100);
SET @Term = N'"Johnson & Johnson"';
SELECT * FROM sys.dm_fts_parser(@Term, 1033, 0, 0);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, 0, 1);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, NULL, 0);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, NULL, 1);
GO
रिटर्न:
keyword group phrase occurrence special display expansion source
id id term term type term
0x006A006F0068006E0073006F006E 1 0 1 Exact Match johnson 0 Johnson & Johnson
0x006A006F0068006E0073006F006E 1 0 2 Exact Match johnson 0 Johnson & Johnson
कि भी Johnson Johnson
की खोज शब्द से मेल करने के लिए है, जो नहीं है प्रतीत होता है तकनीकी रूप से सही।
तो, डबल उद्धरण में संलग्न करने के अलावा, आप भी एम्परसेंड में बदल सकते हैं एक अंडरस्कोर (_
) जो अलग ढंग से नियंत्रित किया जाता है होना करने के लिए:
DECLARE @Term NVARCHAR(100);
SET @Term = N'"Johnson _ Johnson"';
SELECT * FROM sys.dm_fts_parser(@Term, 1033, 0, 0);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, 0, 1);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, NULL, 0);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, NULL, 1);
GO
रिटर्न:
keyword group phrase occurrence special display expansion source
id id term term type term
0x006A006F0068006E0073006F006E 1 0 1 Exact Match johnson 0 Johnson _ Johnson
0x005F 1 0 2 Exact Match _ 0 Johnson _ Johnson
0x006A006F0068006E0073006F006E 1 0 3 Exact Match johnson 0 Johnson _ Johnson
और , ऐसा करने के लिए कि एक वर्ण अनुवाद मूल "AT&T"
खोज पर प्रतिकूल प्रभाव नहीं लग रहा है:
DECLARE @Term NVARCHAR(100);
SET @Term = N'"AT_T"';
SELECT * FROM sys.dm_fts_parser(@Term, 1033, 0, 0);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, 0, 1);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, NULL, 0);
SELECT * FROM sys.dm_fts_parser(@Term, 1033, NULL, 1);
रिटर्न:
keyword group phrase occurrence special display expansion source
id id term term type term
0x00610074005F0074 1 0 1 Exact Match at_t 0 AT_T