J'utilise CONTAINSTABLE
pour rechercher deux colonnes de tableau. Une fois que la recherche contient de petits mots comme «le» pour «a», la recherche ne renvoie aucun résultat même lorsqu'ils sont réellement présents dans la colonne.Requête CONTAINSTABLE ne reconnaissant pas les petits mots
Exemple rapide. La colonne recherchée contient le texte. « Le système doit être mis à jour »
suivant retourne SQL 0 lignes
SELECT * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "to" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "to" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))
Une fois « à » est omis, il fonctionne très bien:
SELECT * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))
Comment peut CONTAINSTABLE
être utilisé avec ces petits mots, ou devraient-ils être complètement exclus? Si ces mots plus petits sont significatifs dans la recherche, comment peuvent-ils être inclus dans la recherche?
Quelle version de SQL Server? –
https://technet.microsoft.com/en-us/library/ms187914(v=sql.110).aspx – Jodrell