2010-10-25 55 views
2

我有一个ASP.NET应用程序接受用户评论和他们在SQL数据库中。我想确保我清除了任何“调皮”字样,这样我就可以保持我的应用的可敬。问题是我发现这些词有很多。 ;>有效地从用户中删除顽皮的词评论

我的问题是,什么是最有效的方式来做这个处理?我是否应该在SQL中有一个表并编写一个存储过程来完成这项工作?我应该使用c#和正则表达式在Web服务器的内存中执行吗?还有其他选择吗?有没有其他人成功地进行过这种文本扫描?如果y,什么工作?

回答

9

这是一个徒劳的任务。如果人们想发誓,那么他们会开始输入像f ucksh*t这样的东西。

没有有效的节制的替代品。还有什么是可能离开你clbuttic错误页面上

我记得有一个报价从什么地方有关技术解决社会问题,但我不能源它现在

+0

你让Gareth好点。我太天真了,以为人们会输入漂亮的正则表达式友善调皮的话...感谢网站的链接,让我笑了起来。 – will 2010-10-25 23:29:53

0

有一些事情需要考虑:

  • 你希望能够从该黑名单后添加或删除的话吗?如果是这样,则只有在显示消息之前执行此操作才有意义,但存储原始消息。
  • 您是否希望稍后获得该邮件的副本(例如,出于法律原因或客户支持)?然后在数据库中保持消息不变也是有意义的。

所以我会保留在数据库中的消息,并解析它之前只渲染它。对我来说,它看起来像最有效的方式做到这将是要么:

  1. 保持黑名单在数据库索引列(小写),并通过过滤它
  2. 存储过程返回评论在一些数据结构中保持黑名单小写,以允许在中间层的内存中有效访问(例如字典)。

在这两种情况下,您只需运行每个评论并对其进行过滤即可。后一种方法更容易实现,但意味着你必须在内存中保留一个列表,当你有一个非常大的黑名单时停止有意义。

(我居然看到在使用正则表达式是没有意义的。)

+0

然后,我也同意Gareth忽略这个方面并且适度放松。 – steinar 2010-10-25 23:31:16

2

Scunthorpe Problem

每个人都应该是阻遏***版尝试在代码中解决这个问题。