At first glance, I would recommend using the LIKE operator rather than a full-text query.
Make sure that you are not case sensitive and may be case insensitive. This can be achieved by setting the correct sorting on the server, in the database, in a table column or in a query. In the request, this is done as follows:
SELECT * FROM [dbo].[Users] WHERE Name LIKE '%niaher%' COLLATE SQL_Latin1_General_CP1_CI_AI
If you use the full-text index, you get all sorts of functions, such as creating verbs and thesaurus, see Linguistic components and language support in full-text Search , which you do not need, when searching in the list of names. By the way, these functions are language dependent and therefore you specify the language in a full-text index.
Use a stop list that you might even want to avoid. At least I would like, since in Dutch many surnames begin with articles and / or prepositions: "Rembrandt van Rijn". "van" will most likely be in the Dutch stop list and will prevent any match in the search term containing "van".
If you run into performance issues, it might be helpful to try the full-text index and search using CONTAINS with a simple term .
SELECT * FROM [dbo].[Users] WHERE CONTAINS(Name, 'niaher')
Please note that full-text indexes are updated asynchronously.
R. schreurs
source share