是否有可能获得信息为什么/如何给予由FTS查询返回的行匹配(或哪些子字符串导致行匹配)? 例如,考虑最简单的表格,其中id
和text
列,FTS索引在后面一列。SQL Server FTS:可能获取信息行/列的匹配方式?
SELECT * FROM Example
WHERE CONTAINS(text, 'FORMSOF(INFLECTIONAL, jump)');
此实施例一查询可以返回,说行{1, 'Jumping Jack'}
。
现在,是否有可能以某种方式获得这一行匹配的信息,因为'Jumping'
这个词?它甚至不一定是确切的信息,更多的是哪个子字符串导致行匹配。
为什么我问 - 我得到了C#应用程序,该应用程序基于用户输入(要搜索的关键字)构建这些查询,并且我需要非常基本的信息为什么/如何匹配行,以便在C#码。
如果这是不可能的,任何替代品?
编辑在迈克·波顿的问候和LesterDove的答复:
上面的例子是微不足道的,原因很明显,你的解决方案是确定具有记住,但是FTS查询可能返回结果,其中正则表达式或简单的字符串匹配(如:LIKE
)将不会在削减考虑:
搜索
bind
回报bound
(过去式)。
搜索extraordinary
返回amazing
(同义词)。
两个有效匹配。
我一直在寻找解决这个问题的办法,发现这个:NHunspell。但是,我已经得到FTS &有效的结果使用SQL Server,复制类似机制(建立额外的索引,存储额外的词/ thezaurus文件等)看起来不好。
但是Lester的答案给了我一些想法,也许我确实可以将原始字符串拆分为临时表,并对此拆分结果运行原始FTS查询。因为它可能适用于我的情况(数据库相当小并且查询不是很复杂),但一般情况下,这种方法可能没有问题。
感谢 - FT寻找临时表的想法是我放弃这个想法的地方。我会回头看看你想出什么。 – LesterDove 2010-05-17 20:55:19