我有了一个表,一个varchar(1000)字段包含了一些有关书籍的用户输入的SQL Server 2008数据库。我有另一个包含一堆关键字的表格。当我呈现用户关于图书的信息时,我想突出显示(或最终创建超链接)这些关键字。我正在寻找最有效的方法来扫描文本并匹配关键字。我不确定是否有办法在SQL中正确执行它,或者它需要在代码中。谢谢。突出关键字文本
Q
突出关键字文本
4
A
回答
0
我推荐在代码中使用它。这是业务逻辑,除此之外还会减轻数据库中的负载 - 因此,如果数据库位于运行应用程序的服务器之外的计算机中,则不会占用该计算机的资源。
我认为正则表达式可以帮你实现 - 这是最有效的文本匹配方法,大多数技术的内部实现(不仅仅是.NET)几乎是最好的。如果你试图拿出别的东西,那么你最多只能重新发明轮子。
所以我应该这样做:发生在一个哈希表或字典的每一个关键字 - 具有切断重复的奖金,然后通过迭代。然后,对于主文本中关键字的每个匹配项,您可以获取匹配的第一个和最后一个索引,并用高亮和链接的标记包装它。
0
下面是我写了,将在匹配上的按键该字典值的字符串替换值的快速LINQPad程序。让我知道这是你在找什么。
侧面说明:我同意其他人,你应该在各种原因的应用层做这个。
void Main()
{
Dictionary<string, string> links = new Dictionary<string, string>();
links.Add("awesome", "link-to-awesome");
links.Add("okay", "link-to-okay");
string text = "This is some text about an okay book review of an otherwise awesome book.";
string result = links.Aggregate(text, (current, kvp) => current.Replace(kvp.Key, kvp.Value));
text.Dump();
result.Dump();
}
结果:
This is some text about an okay book review of an otherwise awesome book.
This is some text about an link-to-okay book review of an otherwise link-to-awesome book.
编辑:这是不是一个很好的例子。你不得不去掉标点和什么 - 不是最终版本。希望这能让你走上正轨。
0
如果链接固定的,那么我个人会写入到数据库时,它只会进行一次做到这一点的话,就不需要额外的努力来显示。
相关问题
- 1. 突出显示关键字
- 2. 突出显示给定搜索文本中的关键字
- 3. 使用关键字编写文本编辑器突出显示
- 4. 使用openpyxl突出显示关键字
- 5. 即时关键字突出显示
- 6. 突出搜索关键字悬停
- 7. 突出显示多个关键字
- 8. 突出显示搜索多个关键字(非英文字符)
- 9. 在PHP搜索脚本中突出显示关键字
- 10. Netbeans热键关闭突出显示的搜索文本?
- 11. wit.ai - 关键字冲突
- 12. 在我自己的文本编辑器中的Eclipse关键字突出显示
- 13. Tkinter:基于关键字突出显示/颜色特定文本行
- 14. 不能关掉Vim的文本突出
- 15. 监控/突出显示关键字的终端标准输出
- 16. .Net Regex突出显示包含特殊字符的关键字
- 17. 如何截断文本并在文本太长时突出显示搜索关键字
- 18. 为记事本++添加关键字到Ruby语法突出显示++
- 19. LaTeX在基本样式为ttfamily时没有突出显示关键字
- 20. 在短语内计数并突出显示关键字
- 21. 使用JavaScript在结果中突出显示搜索关键字
- 22. 如何在msvc中添加突出显示的关键字
- 23. 如何突出显示网格中搜索的关键字
- 24. Notepad ++ - 突出显示自定义关键字
- 25. 仅禁用某些关键字的Perl语法突出显示
- 26. 突出显示搜索结果中的关键字
- 27. VIM并不突出一些C++关键字
- 28. 让Emacs突出显示语法关键字对
- 29. ASP.Net中的搜索关键字突出显示
- 30. 亮点在PHP中的搜索关键字不突出正确
用户是否将关键字的外键输入到主关键字表中?两张桌子的模式是什么? –
1)把[用户约书输入]进入的foreach字符串数组[] 2)比较每个字符串的关键词,并使其成为超级链接 3)检查响应时间的分析结果 –
我认为这必须通过代码来完成只而是SQL .. – Mudassir