Is it possible to get information about why / how the string returned by the FTS request was matched (or which substring caused the string to match)? For example, consider a simple table with id and text columns, with an FTS index at a later date.
SELECT * FROM Example WHERE CONTAINS(text, 'FORMSOF(INFLECTIONAL, jump)');
This sample query may return, for example, the string {1, 'Jumping Jack'} .
Now, is it possible to somehow get information that this line was matched due to the word 'Jumping' ? It doesn't even have to be exact information, more that substrings made the string match .
Why I ask - I got a C # application that creates these queries based on user input (search keywords), and I need the most basic information about why / how the string was matched for further use in C code #,
If this is not possible, any alternatives?
EDIT regarding the answers of Mike Burton and LesterDove:
The above example was trivial for obvious reasons, and your decisions are fine, considering this, however, FTS queries can return results when a regular expression or simple string matching (like LIKE ) won't cut. Consider:
Search bind returns bound (past form).
A search for extraordinary returns amazing (synonym).
Both are valid matches.
I searched for solutions to this problem and found this: NHunspell . However, I already have FTS and valid results using SQL Server, duplicating a similar mechanism (creating additional indexes, saving additional words / thesaurus files, etc.) does not look very good.
Lester's answer, however, gave me some ideas that maybe I could split the source row into a temporary table and run the original FTS query for this split result. Since this may work for my case (where the DB is quite small and the queries are not very complex), in general, this approach is out of the question.