2010-02-26 7 views
4

J'utilise le moteur de recherche de texte intégral de SQL Server 2008 dans mon site Web. J'ai une recherche SP, qui montre les résultats triés en fonction du classement.SQL Server FTS: Classement est un peu étrange

Je romps la chaîne de recherche et de le transmettre au moteur de requête FTS comme si (chaîne de recherche est « test de recherche »:

("*test*" ~ "*search*") OR ("*test*" OR "*search*"). 

Si la ligne de résultat a la ligne « test de recherche », et d'autres Je ne comprends pas comment cela pourrait être - de toute évidence, l'expression «recherche de test» est plus proche, je pense que cela a quelque chose à voir avec le chemin. Je passe la chaîne de test à FTS. Toute idée? Suggestions?

+0

peut vous montrer plus de la SP? – iain

+0

Veuillez indiquer le schéma SP et Table sur lequel la recherche est effectuée. – Shivkant

Répondre

2

A Tous les termes de recherche qui sont OR ont un poids égal. Afin d'augmenter le rang de l'expression "test NEAR search", vous devez spécifier un poids plus important.

Exemple

SELECT 
    Srch.* 
FROM 
    CONTAINSTABLE 
    (
    MyTable, 
    SearchColumn, 
    -- must specify a weight if one phrase is more important 
    'ISABOUT(test ~ search weight(.7), test weight(.1), search weight(.2))', 
    LANGUAGE 1033, -- english 
    100   -- TOP N RANK 
) Srch 
Questions connexes