2009-07-14 7 views
1

J'ai une question concernant une fonction CONTAINSTABLE. Je voudrais trouver tout ce qui se termine avec la chaîne de recherche.Recherche plein texte CONTAINSTABLE

Je peux utiliser le * pour trouver tout ce qui commence avec la valeur de recherche, mais je veux un équivalent pour le signe% dans la fonction SQL LIKE. Ce que je veux: trouver tout ce qui se termine par 123, alors comme searchvalue, je pourrais utiliser "* 123" dans ma fonction CONTAINSTABLE. Mais cela ne fonctionne pas ..

Si je veux tous les résultats commençant par 123, j'utilise "123 *", et cela fonctionne bien.

Mais quel est l'équivalent pour -> LIKE% 123 ?? ce n'est pas "* 123" dans la fonction CONTAINSTABLE. De quoi s'agit-il alors?

Merci!

+1

en double de http://stackoverflow.com/questions/3400/how-do-you-get-leading-wildcard-full-text-searches-to-work-in-ms-sql – NotMe

Répondre

0

Malheureusement, la recherche de texte intégral SQL Server ne prend pas en charge la recherche d'expression avec un «%» principal - j'ai essayé moi-même, mais ce n'est tout simplement pas pris en charge.

Vous pouvez rechercher CONTAINS ("expression%") - mais pas pour CONTAINS ("% postfix").

Marc

+0

Merci Marc, Existe-t-il une solution qui utilise la recherche en texte intégral pour une valeur de recherche "se termine par"? –

+0

Non, pas pour le moment, malheureusement. Votre seule option serait d'utiliser un autre produit (comme Lucene.NET) à la place de la recherche de texte intégral dans SQL Server. –

0

Voici mon travail autour de:

J'ai emmagasiné la colonne de texte intégral à deux reprises. Une fois sous forme normale, l'autre à l'envers. Vous recherchez toutes les valeurs qui contenaient « la Chine », je la requête suivante:

select * from MyBigTable 
where TheNormalColumn contains ('"china*"') 
    or TheReversedColumn contains ('"anihc*") 

Il est deux fois plus de travail, prend deux fois plus d'espace, mais cela fonctionne.

Questions connexes