Proč SQL Kompletní výsledky fulltextové indexování oplátku za slova, které obsahují #?

hlasů
18

Například, můj dotaz je jako následující pomocí SQL Server 2005:

SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#') 

Mám plnou index textu definovaný používat sloupce SearchField která vrací výsledky při použití:

SELECT * FROM Table WHERE SearchField LIKE '%c#%'

Věřím # je zvláštní dopis, tak jak mohu dovolit FREETEXT pracovat správně dotazu výše?

Položena 04/08/2008 v 06:51
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
10

Tlačítko # char je indexována jako interpunkce, a proto ignorován, takže to vypadá, že budeme odstranit písmeno C z naší slovní indexování ignorovat seznamy.

Zkouší to na místě poté, co dělá to a opětovné sestavení indexy a mám výsledky!

Podíváme-li se použít jiný dělení jazyka na indexovaný sloupec, takže tyto zvláštní znaky nejsou ignorovány.

EDIT: Také jsem našel tuto informaci :

c # je indexována jako C (je-li c není v seznamu šum slova, viz více na seznamech hluku slovo později), ale C # je indexována jako C # (v SQL 2005 a SQL 2000 běží na Win2003 bez ohledu na to, jestli C nebo c je v hluku seznam slov). Je to nejen C #, který je uložen jako C #, ale jakýkoliv velké písmeno následovaný #. Naopak, c ++ (a jakýkoli jiný s nižší režijní písmeno následované ++) je indexována jako C (bez ohledu na to, zda c je ve vašem seznamu hluku slovo).

Odpovězeno 04/08/2008 v 07:39
zdroj uživatelem

hlasů
1

Citovat mnohem replikovány stránku nápovědy k indexování Service dotazovací jazyk:

Chcete-li použít speciálně upravené znaky, například &, |, ^, #, @, $, (,), v dotazu, uzavřete dotazu do uvozovek ( „).

Pokud je mi známo, hledání plný text MSSQLse také provádí pomocí služby indexování, takže by to mohlo pomoci.

Odpovězeno 04/08/2008 v 07:10
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more