类似于'%term%'的SQL,除非不带字母

关颖

我正在搜索新闻报道表。2个相关的列是ArticleTitleArticleText当我想在文章中搜索特定术语时,我从

column LIKE '%term%'

但是,这给了我很多文章,例如带有锚链接中的术语,<a href="example.com/*term*>这可能会返回不相关的文章。

所以我切换到

column LIKE '% term %'

该查询的问题是找不到标题或文字以该词开头/结尾的文章。另外,它与我想要的类似term-或的东西也不匹配term's

看来我想要的查询应该能够执行这样的操作

'%[^a-z]term[^a-z]%

这应排除锚链接中的术语,但不包括其他所有术语。我认为此查询仍排除以该词开头/结尾的字符串。有更好的解决方案吗?SQL Server的FULL TEXT INDEXING是否可以解决此问题?

此外,这将是一个好主意,商店ArticleTitleArticleText免费的HTML列?然后,我可以使用'%term%'而无需获取锚链接。但是,这些将是2个额外的列,因为最终我将需要原始HTML来进行格式化。

谢谢。

托德克

SQL ServerLIKE允许您按照您的描述来定义类似Regex的模式。

更好的选择是使用全文搜索

WHERE CONTAINS(ArticleTitle, 'term')

正确利用索引(LIKE '%term%'查询速度很慢),并在搜索算法中提供其他好处。

此外,您可能会受益于将文章的纯文本版本与HTML版本一起存储,并在其上运行搜索查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章