【问题标题】:SQL Server CONTAINS and highlighting the matchesSQL Server 包含并突出显示匹配项
【发布时间】: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


【解决方案1】:

有两个 SQL Server 函数可以帮助您:

Soundex 功能可帮助您比较相似的单词。 并且差异函数可以帮助您评估差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 2013-04-28
    • 2012-12-09
    • 2016-05-28
    • 1970-01-01
    • 2017-11-21
    • 2012-11-03
    相关资源
    最近更新 更多