J'ai des problèmes avec un FulltextSqlQuery MOSS lorsque je tente de filtrer les résultats People sur la propriété Skills Skills en utilisant le prédicat CONTAINS. Permettez-moi de démontrer:Comment puis-je effectuer un MOSS FullTextSqlQuery et filtrer les résultats de personnes par la propriété Skills managed?
Une requête sans filtre retourne le résultat attendu:
SELECT AccountName, Skills
from scope()
where freetext(defaultproperties,'+Bob')
And ("scope" = 'People')
Résultat
Total Rows: 1
ACCOUNTNAME: MYDOMAIN\Bob
SKILLS: Numchucks | ASP.Net | Application Architecture
Mais quand j'ajouter un prédicat CONTAINS, je ne reçois le résultat attendu :
SELECT AccountName, Skills
from scope()
where freetext(defaultproperties,'+Bob')
And ("scope" = 'People')
And (CONTAINS(Skills, 'Numchucks'))
Résultat
Total Rows: 0
je me rends compte que je peux y arriver en utilisant le prédicat SOME ARRAY, mais je voudrais savoir pourquoi cela ne fonctionne pas avec le prédicat CONTAINS pour la propriété des compétences. J'ai réussi à utiliser le prédicat CONTAINS avec une propriété d'analyse personnalisée indiquée comme "multi-valuée". La propriété Skills (bien qu'elle semble avoir plusieurs valeurs) n'est pas indiquée comme telle sur la page Crawled Properties du site d'administration SSP:
http: ///ssp/admin/_layouts/schema.aspx? ConsoleView = crawledPropertiesView & category = Personnes
Vous avez des idées?
La raison pour laquelle je ne peux pas utiliser le prédicat SOME ARRAY est que je n'ai besoin de renvoyer que les utilisateurs possédant toutes les compétences requises. C'est-à-dire que les utilisateurs retournés nommés Bob possèdent les compétences Numchucks AND ASP.Net. Le prédicat CONTAINS me semble la meilleure approche pour accomplir ceci. Si je suis égaré, s'il vous plaît faites le moi savoir. – Trent