【发布时间】:2015-01-29 23:33:07
【问题描述】:
Contains() 和 FORMSOF() 非常适合尝试在搜索时捕捉用户的意图,但有什么方法可以突出显示匹配项。
如果我搜索“said”,它可能会返回包含“says, say,spoke”等的文本。有没有办法可以在结果中突出显示匹配项,或者有没有办法包围下划线匹配?所以我可能会得到
She _says_ yes.
I _say_ my name.
We _spoke_ for hours but he didn't _say_ much.
我考虑过一种事后(客户端)正则表达式解决方案,它基本上会删除常见的词尾,如 (e|ed|es|s|ing),然后使用所有这些选项查找我的结果(所以 bakes 会变成 bak 然后我会搜索 bak[a-z]?(s|d|es|ed|ing) 并且对于这样的词来说还可以,但是在很多情况下过去时不遵循这个公式,比如说话与说话和说话。
【问题讨论】:
-
在业务逻辑中或在 web/view 上显示时执行此操作是理想的。
-
好吧,我认为没有办法检索匹配位置,所以感觉就像,为了精确匹配,我必须让 SQL 突出显示匹配项(如果有办法,问题的重点)因为客户端正则表达式根本无法捕获许多结果。
标签: sql-server full-text-search full-text-indexing